keras模型保存與加載 keras已訓(xùn)練好模型,一段時間后又有新數(shù)據(jù),如何在已有模型基礎(chǔ)上繼續(xù)做增量訓(xùn)練?
keras已訓(xùn)練好模型,一段時間后又有新數(shù)據(jù),如何在已有模型基礎(chǔ)上繼續(xù)做增量訓(xùn)練?我也是一個菜鳥,可以用來交流。。。在我看來,如果網(wǎng)絡(luò)不需要調(diào)整(例如不添加新的類別),只需使用一個小的學(xué)習(xí)率來微調(diào)網(wǎng)絡(luò)
keras已訓(xùn)練好模型,一段時間后又有新數(shù)據(jù),如何在已有模型基礎(chǔ)上繼續(xù)做增量訓(xùn)練?
我也是一個菜鳥,可以用來交流。。。
在我看來,如果網(wǎng)絡(luò)不需要調(diào)整(例如不添加新的類別),只需使用一個小的學(xué)習(xí)率來微調(diào)網(wǎng)絡(luò)的所有數(shù)據(jù)。
如果網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生變化(如增加新的類別),在前期(如conv層)固定網(wǎng)絡(luò)參數(shù),后期(如FC層)直接學(xué)習(xí)參數(shù)。然后放開凍結(jié),微調(diào)大局。
Keras還是TensorFlow,程序員該如何選擇深度學(xué)習(xí)框架?
如果您想用少量代碼盡快構(gòu)建和測試神經(jīng)網(wǎng)絡(luò),keras是最快的,而且順序API和模型非常強大。而且keras的設(shè)計非常人性化。以數(shù)據(jù)輸入和輸出為例,與keras的簡單操作相比,tensorflow編譯碼的構(gòu)造過程非常復(fù)雜(尤其對于初學(xué)者來說,大量的記憶過程非常痛苦)。此外,keras將模塊化作為設(shè)計原則之一,用戶可以根據(jù)自己的需求進行組合。如果你只是想快速建立通用模型來實現(xiàn)你的想法,keras可以是第一選擇。
但是,包裝后,keras將變得非常不靈活,其速度相對較慢。如果高度包裝,上述缺點將更加明顯。除了一些對速度要求較低的工業(yè)應(yīng)用外,由于tensorflow的速度較高,因此會選擇tensorflow
如果您在驗證您的想法時,想定義損失函數(shù)而不是使用現(xiàn)有的設(shè)置,與keras相比,tensorflow提供了更大的個性空間。此外,對神經(jīng)網(wǎng)絡(luò)的控制程度將在很大程度上決定對網(wǎng)絡(luò)的理解和優(yōu)化,而keras提供的權(quán)限很少。相反,tensorflow提供了更多的控制權(quán),比如是否訓(xùn)練其中一個變量、操作梯度(以獲得訓(xùn)練進度)等等。
盡管它們都提供了深度學(xué)習(xí)模型通常需要的功能,但如果用戶仍然追求一些高階功能選擇,例如研究特殊類型的模型,則需要tensorflow。例如,如果您想加快計算速度,可以使用tensorflow的thread函數(shù)來實現(xiàn)與多個線程的相同會話。此外,它還提供了調(diào)試器功能,有助于推斷錯誤和加快操作速度。
如何保存訓(xùn)練好的機器學(xué)習(xí)模型呢?
經(jīng)過訓(xùn)練的機器學(xué)習(xí)模型是一堆參數(shù)。有許多方法可以保存這些參數(shù)。幾乎每個框架都提供了相應(yīng)的Save命令。至于要保存的文件的具體格式,則要視具體情況而定。需要考慮寫入文件的時間和大小,特別是對于深度神經(jīng)網(wǎng)絡(luò),參數(shù)應(yīng)該被保存,這將是一個驚人的數(shù)量。
重新加載模型只是將保存的模型恢復(fù)到特定模型。根據(jù)模型的規(guī)則保存參數(shù)。模型恢復(fù)后,只需提供輸入,即可根據(jù)之前保存的參數(shù)進行輸出。
keras訓(xùn)練好的網(wǎng)絡(luò),怎么在c 程序中調(diào)用?
我嘗試使用其他培訓(xùn)數(shù)據(jù)來調(diào)用Java。一些建議。首先,如果訓(xùn)練模型很小,可以先得到訓(xùn)練參數(shù),然后用C語言調(diào)用,當(dāng)然,矩陣的計算需要自己準(zhǔn)備。
我以前是這樣的,但它有很大的局限性。最大的問題是這種方法的前提,當(dāng)模型不復(fù)雜時。這樣,公共應(yīng)用服務(wù)器仍然可以承受計算負(fù)載。
但是,如果模型復(fù)雜,則不建議這樣做。機器無法運行,針對性的浮點優(yōu)化也無法在短時間內(nèi)解決。此時仍建議使用培訓(xùn)機通過web服務(wù)完成Python的遠(yuǎn)程調(diào)用,實現(xiàn)業(yè)務(wù)應(yīng)用。