91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在keras中model如何實現固定部分layer,訓練部分layer操作

發布時間:2020-06-28 18:00:59 來源:億速云 閱讀:557 作者:清晨 欄目:開發技術

這篇文章主要介紹在keras中model如何實現固定部分layer,訓練部分layer操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

需求:Resnet50做調優訓練,將最后分類數目由1000改為500。

問題:網上下載了resnet50_weights_tf_dim_ordering_tf_kernels_notop.h6,更改了Resnet50后,由于所有層均參加訓練,導致訓練速度慢。實際上只需要訓練最后3層,前面的層都不需要訓練。

解決辦法:

①將模型拆分為兩個模型,一個為前面的notop部分,一個為最后三層,然后利用model的trainable屬性設置只有后一個model訓練,最后將兩個模型合并起來。

②不用拆分,遍歷模型的所有層,將前面層的trainable設置為False即可。代碼如下:

for layer in model.layers[:-3]:
 print(layer.trainable)
 layer.trainable = False

注意事項:

①盡量不要這樣:

layers.Conv2D(filters1, (1, 1), trainable=False)(input_tensor)

因為容易出錯。。。

②加載notop參數時注意by_name=True.

補充知識:Keras關于訓練凍結部分層

設置凍結層有兩種方式。

(不推薦)是在搭建網絡時,直接將某層的trainable設置為false,例如:

layers.Conv2D(filters1, (1, 1), trainable=False)(input_tensor)

在網絡搭建完成時,遍歷model.layer,然后將layer.trainable設置為False:

# 凍結網絡倒數的3層
for layer in model.layers[:-3]:
 print(layer.trainable)
 layer.trainable = False

也可以根據layer.name來確定哪些層需要凍結,例如凍結最后一層和RNN層:

for layer in model.layers:
 layerName=str(layer.name)
 if layerName.startswith("RNN_") or layerName.startswith("Final_"):
 layer.trainable=False

可以在實例化之后將網絡層的 trainable 屬性設置為 True 或 False。為了使之生效,在修改 trainable 屬性之后,需要在模型上調用 compile()。

這是一個例子

x = Input(shape=(32,))
layer = Dense(32)
layer.trainable = False
y = layer(x)
 
frozen_model = Model(x, y)
# 在下面的模型中,訓練期間不會更新層的權重
frozen_model.compile(optimizer='rmsprop', loss='mse')
 
layer.trainable = True
trainable_model = Model(x, y)
# 使用這個模型,訓練期間 `layer` 的權重將被更新
# (這也會影響上面的模型,因為它使用了同一個網絡層實例)
trainable_model.compile(optimizer='rmsprop', loss='mse')
 
frozen_model.fit(data, labels) # 這不會更新 `layer` 的權重
trainable_model.fit(data, labels) # 這會更新 `layer` 的權重

在網絡搭建時,可以考慮最后一個分類層命名和分類數量關聯,這樣當費雷數量方式變化時,model.load_weight(“weight.h6”,by_name=True)不會加載最后一層

以上是在keras中model如何實現固定部分layer,訓練部分layer操作的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸西县| 大余县| 福清市| 仁怀市| 嘉义县| 西林县| 长沙市| 分宜县| 锡林郭勒盟| 沧州市| 日土县| 广东省| 秦皇岛市| 山阳县| 饶平县| 泉州市| 固原市| 虹口区| 彭州市| 马公市| 新丰县| 巨鹿县| 宣恩县| 同心县| 东港市| 东安县| 汝南县| 荆州市| 铅山县| 灵山县| 瑞丽市| 易门县| 神木县| 山阳县| 遂宁市| 鄱阳县| 饶河县| 台南市| 汉源县| 界首市| 武强县|