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

補(bǔ)充知識(shí):使用keras,在load_model()時(shí),出現(xiàn)NameError: name '***' is not defined
是因?yàn)樵跇?gòu)造模型是,使用了自定義的層,如Lambda()
# 文本相似度評(píng)估方式
def exponent_neg_manhattan_distance(sent_left, sent_middle, sent_right):
'''基于曼哈頓空間距離計(jì)算兩個(gè)字符串語(yǔ)義空間表示相似度計(jì)算'''
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)
# 文本相似度評(píng)估方式
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]) #第二個(gè)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()依然會(huì)報(bào)NameError: name 'exponent_neg_manhattan_distance' is not defined
解決辦法:

在load_model的時(shí)候,加一個(gè)custom_objects參數(shù)就可以了,即
model = load_model(model_path,custom_objects={'exponent_neg_manhattan_distance': exponent_neg_manhattan_distance}) #對(duì)自定義層一定要說(shuō)明
注:用Google搜bug比用baidu搜質(zhì)量會(huì)高不少。
以上這篇查看keras各種網(wǎng)絡(luò)結(jié)構(gòu)各層的名字方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python?pyecharts?Map地圖數(shù)據(jù)不顯示的原因及完美解決
這篇文章主要給大家介紹了關(guān)于Python?pyecharts?Map地圖數(shù)據(jù)不顯示的原因及解決辦法,pyecharts是一款將python與echarts結(jié)合的強(qiáng)大的數(shù)據(jù)可視化工具,文中通過(guò)圖文以及代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
Django框架安裝及項(xiàng)目創(chuàng)建過(guò)程解析
這篇文章主要介紹了Django框架安裝及項(xiàng)目創(chuàng)建過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
淺談Python中的異常和JSON讀寫數(shù)據(jù)的實(shí)現(xiàn)
今天小編就為大家分享一篇淺談Python中的異常和JSON讀寫數(shù)據(jù)的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Python鍵盤輸入轉(zhuǎn)換為列表的實(shí)例
今天小編就為大家分享一篇Python鍵盤輸入轉(zhuǎn)換為列表的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
python中playwright結(jié)合pytest執(zhí)行用例的實(shí)現(xiàn)
本文主要介紹了python中playwright結(jié)合pytest執(zhí)行用例的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Windows環(huán)境中Python應(yīng)用服務(wù)自啟動(dòng)及其監(jiān)控問(wèn)題
這篇文章主要介紹了Windows環(huán)境中Python應(yīng)用服務(wù)自啟動(dòng)及其監(jiān)控問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
從零開(kāi)始學(xué)習(xí)Python與BeautifulSoup網(wǎng)頁(yè)數(shù)據(jù)抓取
想要從零開(kāi)始學(xué)習(xí)Python和BeautifulSoup網(wǎng)頁(yè)數(shù)據(jù)抓???本指南將為你提供簡(jiǎn)單易懂的指導(dǎo),讓你掌握這兩個(gè)強(qiáng)大的工具,不管你是初學(xué)者還是有經(jīng)驗(yàn)的開(kāi)發(fā)者,本指南都能幫助你快速入門并提升技能,不要錯(cuò)過(guò)這個(gè)機(jī)會(huì),開(kāi)始你的編程之旅吧!2024-01-01
分析用Python腳本關(guān)閉文件操作的機(jī)制
這篇文章主要介紹了分析用Python腳本關(guān)閉文件操作的機(jī)制,作者分Python2.x版本和3.x版本兩種情況進(jìn)行了闡述,需要的朋友可以參考下2015-06-06
詳解TensorFlow2實(shí)現(xiàn)前向傳播
這篇文章主要介紹了TensorFlow2如何實(shí)現(xiàn)前向傳播,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09

