您好,登錄后才能下訂單哦!
這篇文章主要講解了如何使用Keras加載含有自定義層或函數的模型,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
當我們導入的模型含有自定義層或者自定義函數時,需要使用custom_objects來指定目標層或目標函數。
例如:
我的一個模型含有自定義層“SincConv1D”,需要使用下面的代碼導入:
from keras.models import load_model
model = load_model('model.h6', custom_objects={'SincConv1D': SincConv1D})
如果不加custom_objects指定目標層Layer,則會出現以下報錯:
ValueError: Unknown layer: SincConv1D
同樣的,當我的模型含有自定義函數“my_loss”,需要使用下面的代碼導入:
from keras.models import load_model
model = load_model('model.h6', custom_objects={'my_loss': my_loss})
補充知識:keras加載模型load_model報錯——ValueError: Unknown layer: CRF
我就廢話不多說了,大家還是直接看代碼吧!
from keras.models import load_model
model = load_model(model_path)
會報錯,需要在load_model函數中添加custom_objects參數,來聲明自定義的層
(用keras搭建bilstm-crf,在訓練模型時,使用的是:
from keras_contrib.layers.crf import CRF) from keras_contrib.layers.crf import CRF, crf_loss, crf_viterbi_accuracy model = load_model(model_path, custom_objects={"CRF": CRF, 'crf_loss': crf_loss, 'crf_viterbi_accuracy': crf_viterbi_accuracy})
看完上述內容,是不是對如何使用Keras加載含有自定義層或函數的模型有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。