查看keras各種網(wǎng)絡(luò)結(jié)構(gòu)各層的名字方式
舉例
base_model = ResNet50(weights=‘imagenet', include_top=True)
print(base_model.summary())
得到這個結(jié)果

補充知識:使用keras,在load_model()時,出現(xiàn)NameError: name '***' is not defined
是因為在構(gòu)造模型是,使用了自定義的層,如Lambda()
# 文本相似度評估方式
def exponent_neg_manhattan_distance(sent_left, sent_middle, sent_right):
'''基于曼哈頓空間距離計算兩個字符串語義空間表示相似度計算'''
return ((K.exp(-K.sum(K.abs(sent_left - sent_middle), axis=1, keepdims=True)) - K.exp(-K.sum(K.abs(sent_left - sent_right), axis=1, keepdims=True))) + 1) / 2
def bilstm_siamese_model():
'''搭建孿生網(wǎng)絡(luò)'''
#可以在這里調(diào)參
embedding_layer = Embedding(VOCAB_SIZE + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=MAX_LENGTH,
trainable=True, #原本為False
mask_zero=True)
#輸入層
left_input = Input(shape=(MAX_LENGTH,), dtype='float32', name="left_x") #(?, 25)
middle_input = Input(shape=(MAX_LENGTH,), dtype='float32', name="middle_x") #(?, 25)
right_input = Input(shape=(MAX_LENGTH,), dtype='float32', name='right_x')
#嵌入層
encoded_left = embedding_layer(left_input) #(?, 25, 300)
encoded_middle = embedding_layer(middle_input) #(?, 25, 300)
encoded_right = embedding_layer(right_input)
# print(encoded_left)
#孿生網(wǎng)絡(luò)
shared_lstm = create_base_network(input_shape=(MAX_LENGTH, EMBEDDING_DIM))
left_output = shared_lstm(encoded_left)
middle_output = shared_lstm(encoded_middle)
right_output = shared_lstm(encoded_right)
# 文本相似度評估方式
distance = Lambda(lambda x: exponent_neg_manhattan_distance(x[0], x[1], x[2]),output_shape=lambda x: (x[0][0], 1))([left_output, middle_output, right_output]) #第二個lambda函數(shù)的輸入?yún)?shù)不清楚,x[0][0]
print('distance',distance)
model = Model([left_input, middle_input, right_input], distance)
model.compile(loss='binary_crossentropy',
optimizer='nadam',
metrics=['accuracy'])
model.summary()
return model
雖然之前已經(jīng)定義好了exponent_neg_manhattan_distance(),但是在load_model()依然會報NameError: name 'exponent_neg_manhattan_distance' is not defined
解決辦法:

在load_model的時候,加一個custom_objects參數(shù)就可以了,即
model = load_model(model_path,custom_objects={'exponent_neg_manhattan_distance': exponent_neg_manhattan_distance}) #對自定義層一定要說明
注:用Google搜bug比用baidu搜質(zhì)量會高不少。
以上這篇查看keras各種網(wǎng)絡(luò)結(jié)構(gòu)各層的名字方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
TensorFlow實現(xiàn)RNN循環(huán)神經(jīng)網(wǎng)絡(luò)
這篇文章主要介紹了TensorFlow實現(xiàn)RNN循環(huán)神經(jīng)網(wǎng)絡(luò),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
Python tkinter實現(xiàn)桌面軟件流程詳解
這篇文章主要介紹了Python tkinter做一個好用的桌面軟件,100%你會愛上它,文中的示例代碼講解詳細(xì),快跟小編一起動手試一試吧2022-10-10
詳解Django自定義圖片和文件上傳路徑(upload_to)的2種方式
這篇文章主要介紹了詳解Django自定義圖片和文件上傳路徑(upload_to)的2種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
用Python簡單實現(xiàn)個貪吃蛇小游戲(保姆級教程)
本文基于Windows環(huán)境開發(fā),適合Python新手,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
Python基礎(chǔ)之文件操作及光標(biāo)移動詳解
這篇文章主要為大家介紹了Python基礎(chǔ)之文件操作及光標(biāo)移動詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11

