在凱拉斯定義模型
回答
此代碼行創建一個名爲ResNet50
的網絡體系結構(您可以找到關於它的更多信息here)。 weights='imagenet'
使得Keras
加載該網絡的權重,該網絡已經在imagenet
數據集上接受過培訓。沒有這些信息,Keras
只能夠準備網絡架構,但不能將任何權重設置爲「好」值,因爲它不知道模型的用途。這是通過指定數據集來確定的。
如果您正在使用其他數據集,那麼您將該模型用作預先訓練的模型。你可以找到關於這種技術的更多信息here;但總體思路是:在模型已經在任何複雜(圖像)數據集上進行訓練之後,它將在其最低層(大部分時間:卷積)中學習以檢測非常基本的特徵,例如邊緣,拐角等這有助於模型學習更快地分析自己的數據集,因爲它不必再學習檢測這些基本特徵。
感謝您的回覆。但是我正在使用不同的數據集。如何使用已在其他數據集上訓練過的網絡的權重來幫助我的模型學習(或使用來自預訓練模型的權重的重要性?) –
@AKSHAYAAVAIDYANATHAN請參閱編輯。 – FlashTek
以下@FlashTek答案,我們也可以在我們的數據集上訓練這個模型。
請看下面的代碼:
model = applications.ResNet50(weights = "imagenet", include_top=False,
input_shape = (img_width, img_height,3))
# Freeze the layers which you don't want to train. Here I am freezing the first 30 layers.
for layer in model.layers[0:30]:
layer.trainable = False
for layer in model.layers[30:]:
layer.trainable = True
#Adding custom Layers
x = Flatten()(model.output)
# x = Dense(1024, activation="relu")(x)
# x = Dropout(0.5)(x)
# x = Dense(1024, activation="relu")(x)
# x = Dropout(0.5)(x)
x = Dense(1024, activation="relu")(x)
predictions = Dense(2, activation="softmax")(x)
在上面的代碼中,我們可以是指定我們如何RESNET的許多層對我們的訓練數據集通過分配layer.trainable是真就訓練它你的數據集或否則爲false。
除此之外的,我們也可以在網絡後,如圖添加自定義層
這是一個有趣的解釋。謝謝。 –
- 1. 在凱拉斯CRF的LSTM
- 2. 凱拉斯的冷凍模型在修復後不能預測
- 3. 模型的輸出張量必須是凱拉斯張量
- 4. 凱拉斯LSTM的輸入維度
- 5. 確定型結構在斯卡拉
- 6. 定義的OCaml風格型變異體在斯卡拉
- 7. model.evaluate()在凱拉斯不包括所有數據點
- 8. 在凱馬/斯卡拉有條件地重寫術語
- 9. 如何在凱拉斯實施三重損失?
- 10. 如何在凱拉斯獲得sklearns子集多標籤精度?
- 11. 部分模型的斯卡拉成語?
- 12. 轉換JsValue斯卡拉Play2到模型
- 13. ASP.NET MVC自定義HtmlHelper模型的自定義下拉
- 14. 模式在斯卡拉
- 15. 重用斯卡拉類型的方法定義
- 16. 斯卡拉正確定義一個抽象數據類型
- 17. 如何擺脫與凱拉斯tensorflow詳細信息
- 18. 重建凱拉斯路透數據集中的新聞文本
- 19. 爲什麼斯凱拉茲半羣不是協變的?
- 20. 斯卡拉 - 運營商定義
- 21. 斯卡拉演員消息定義
- 22. 定義斯卡拉功能不同
- 23. 斯卡拉:Traversable的定義的foreach
- 24. 斯卡拉未指定類型
- 25. 斯卡拉模塊
- 26. 蛋糕PHP:對模型凱特錯誤表凱茨在數據源默認
- 27. 拉普拉斯平滑伯努利模型樸素貝葉斯分類器
- 28. 指定斯卡拉
- 29. 模型未定義
- 30. 如何在凱拉斯的培訓課程中保留指標值?
如果您的問題已經解決了,你應該標記最有用的答案,解決關閉這個主題粘層。 – FlashTek