keras保存模型繼續(xù)訓練 keras已訓練好模型,一段時間后又有新數(shù)據(jù),如何在已有模型基礎上繼續(xù)做增量訓練?
keras已訓練好模型,一段時間后又有新數(shù)據(jù),如何在已有模型基礎上繼續(xù)做增量訓練?我也是一個菜鳥,可以用來交流。。。在我看來,如果網(wǎng)絡不需要調整(例如不添加新的類別),只需使用一個小的學習率來微調網(wǎng)絡
keras已訓練好模型,一段時間后又有新數(shù)據(jù),如何在已有模型基礎上繼續(xù)做增量訓練?
我也是一個菜鳥,可以用來交流。。。
在我看來,如果網(wǎng)絡不需要調整(例如不添加新的類別),只需使用一個小的學習率來微調網(wǎng)絡的所有數(shù)據(jù)。
如果網(wǎng)絡結構發(fā)生變化(如增加新的類別),在前期(如conv層)固定網(wǎng)絡參數(shù),后期(如FC層)直接學習參數(shù)。然后放開凍結,微調大局。
keras訓練好的網(wǎng)絡,怎么在c 程序中調用?
我嘗試使用其他培訓數(shù)據(jù)來調用Java。一些建議。首先,如果訓練模型很小,可以先得到訓練參數(shù),然后用C語言調用,當然,矩陣的計算需要自己準備。
我以前是這樣的,但它有很大的局限性。最大的問題是這種方法的前提,當模型不復雜時。這樣,公共應用服務器仍然可以承受計算負載。
但是,如果模型復雜,則不建議這樣做。機器無法運行,針對性的浮點優(yōu)化也無法在短時間內解決。此時仍建議使用培訓機通過web服務完成Python的遠程調用,實現(xiàn)業(yè)務應用。
如何提高keras模型預測速度?
一旦確定了keras模型,在不修改keras框架的源代碼的情況下,什么都不會改變。唯一的出路是擴大GPU。
一般情況下,我們只能嘗試修改模型結構、量化剪枝等方式,自行修改框架源代碼,沒有必要。
通常,為了加快模型的預測速度,只需加載一次模型即可。
當模型的預測時間過長時,通常采用減少卷積核、減少卷積核數(shù)、增加步長、增加池單元等方法。一些參數(shù)較少的主干也可能被替換。
或者考慮使用移動終端分離卷積和空穴卷積。
最后,默認情況下,我們的模型由floaf32的精度表示,可以適當量化。它以16位、8位甚至2位精度表示。只要模型的精度不顯著降低,且滿足使用場景,則是合理的。
如果您在這方面還有其他問題,請關注我,一起學習。