第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在串聯(lián)的keras模型中設(shè)置可訓(xùn)練的參數(shù)

如何在串聯(lián)的keras模型中設(shè)置可訓(xùn)練的參數(shù)

Qyouu 2021-04-17 18:15:42
原始代碼太過冗長,因此我將嘗試用一個(gè)簡化的例子來解釋這個(gè)問題。首先,導(dǎo)入我們需要的庫:import tensorflow as tffrom keras.applications.resnet50 import ResNet50from keras.models import Modelfrom keras.layers import Dense, Input然后加載預(yù)先訓(xùn)練的模型并打印出摘要。model = ResNet50(weights='imagenet')model.summary()(我剪切了summary()函數(shù)的輸出以節(jié)省一些空間。)現(xiàn)在,所有層參數(shù)都是可訓(xùn)練的。為了示例,我將一個(gè)可訓(xùn)練參數(shù)設(shè)置False為如下。model.get_layer('bn5c_branch2c').trainable = False目前,除bn5c_branch2c層外,所有其他層仍可訓(xùn)練。接下來,使用此原始模型創(chuàng)建一個(gè)新模型,但讓它成為串聯(lián)模型。in1 = Input(shape=(224, 224, 3), name="in1")in2 = Input(shape=(224, 224, 3), name="in2")out1 = model(in1)out2 = model(in2)new_model = Model(inputs=[in1, in2], outputs=[out1, out2])并再次打印摘要:new_model.summary()__________________________________________________________________________________________________Layer (type)                    Output Shape         Param #     Connected to                     Total params: 25,636,712Trainable params: 25,583,592Non-trainable params: 53,120__________________________________________________________________________________________________在這一點(diǎn)上,我已經(jīng)失去了查看哪些層可訓(xùn)練和不可訓(xùn)練的能力,因?yàn)樵糝esNet50模型的所有層現(xiàn)在都顯示為一個(gè)層。如果我運(yùn)行以下代碼,它將給我True:new_model.get_layer('resnet50').trainable    # Returns True問題1)我確實(shí)在模型中將bn5c_branch2c層的可訓(xùn)練參數(shù)設(shè)置為False 。我可以假設(shè)即使在new_model中,bn5c_branch2c的可訓(xùn)練值仍然為False嗎?問題2)如果上述問題的答案為是(意味著new_model中bn5c_branch2c層的可訓(xùn)練參數(shù)值仍然為False)...如果我以后保存了此new_model的體系結(jié)構(gòu)和權(quán)重,然后再次加載它們以進(jìn)行進(jìn)一步訓(xùn)練這個(gè)new_model ...我可以相信bn5c_branch2c的可訓(xùn)練參數(shù)值將保持為False嗎?
查看完整描述

1 回答

?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

注意:您可以使用.layers[idx]屬性訪問模型的圖層,其中屬性idx是模型中圖層的索引(從零開始)。另外,如果您為圖層設(shè)置了名稱,則可以使用.get_layer(layer_name)方法訪問它們。


A1)是的,您可以通過以下方式確認(rèn)這一點(diǎn):


print(new_model.layers[2].get_layer('bn5c_branch2c').trainable) # output: False

另外,您可以通過查看模型摘要中不可訓(xùn)練參數(shù)的數(shù)量來確認(rèn)這一點(diǎn)。


A2)是的,您可以通過以下方式確認(rèn)這一點(diǎn):


# save it

new_model.save('my_new_model.hd5')


# load it again

new_model = load_model('my_new_model.hd5')


print(new_model.layers[2].get_layer('bn5c_branch2c').trainable) # output: False


查看完整回答
反對(duì) 回復(fù) 2021-04-27
  • 1 回答
  • 0 關(guān)注
  • 318 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)