我正在進口keras的preggined vgg模型,從keras.applications.vgg16 import VGG16
。 我注意到標準型號是keras.models.Sequential
,而預訓練型號是keras.engine.training.Model
型號。在standrd模型中,我可以使用add
添加圖層,並使用pop
刪除它們。在keras-pretrained模型中,我似乎無法使用pop
。有沒有其他的選擇呢? 謝謝在keras預訓練模型中,我可以刪除圖層嗎?
1
A
回答
0
取決於你想要刪除。如果你想刪除最後SOFTMAX層和使用轉移的學習模式,你可以通過include_top=False
kwarg到模型中,像這樣:
from keras.applications.vgg16 import VGG16
IN_SHAPE = (256, 256, 3) # image dimensions and RGB channels
pretrained_model = VGG16(
include_top=False,
input_shape=IN_SHAPE,
weights='imagenet'
)
我寫了這個用例博客中最近有一些代碼示例並進行更詳細的說明:http://innolitics.com/10x/pretrained-models-with-keras/
如果您想要修改模型架構更多,可以通過pretrained_model.layers.pop()
訪問pop()
方法,如鏈接@indraforyou發佈中所述。
備註:當您修改預訓練模型中的圖層時,對結構和輸入/輸出形狀進行可視化會特別有幫助。 pydot
和graphviz
是特別有用的:
import pydot
pydot.find_graphviz = lambda: True
from keras.utils import plot_model
plot_model(model, show_shapes=True, to_file='../model_pdf/{}.pdf'.format(model_name))
相關問題
- 1. Keras中可以有不可訓練的層嗎?
- 2. Keras訓練稀疏模型
- 3. 如何用Keras中的訓練模型預測輸入圖像?
- 4. 保存訓練模型在Keras
- 5. 如何在keras中添加可訓練的hadamard產品圖層?
- 6. 我可以在經過預訓練的Tensorflow模型中生成輸入嗎?
- 7. 加載訓練有素的Keras模型並繼續訓練
- 8. Tensorflow:使用預訓練以來模型
- 9. 在Word2Vec中合併預訓練模型?
- 10. 預訓練初始v3模型(tensorflow)的圖層名稱
- 11. 如何使用TensorFlow java api刪除預訓練模型的輸出層?
- 12. 特徵與Keras預先訓練CNN模型
- 13. 我可以用cpu訓練初始v3模型嗎?
- 14. Keras - 獲得訓練層的權重
- 15. 在keras中的預訓練密集層之間添加丟失層
- 16. Keras LSTM不訓練
- 17. 是否可以訓練keras中的多個圖像大小?
- 18. 是否可以保存經過訓練的圖層以在Keras上使用圖層?
- 19. Keras準確性我的模型始終爲0訓練
- 20. 在R中使用mxnet預訓練的圖像分類模型
- 21. 意大利語Syntaxnet預訓練模型
- 22. 預訓練詞嵌入和訓練詞嵌入keras中的區別
- 23. 我們可以使用OpenCv C++中的BigInt標籤來訓練EigenVectors模型嗎?
- 24. NLP模型訓練
- 25. 如何用Cifar在Keras中訓練單層神經網絡?
- 26. 生成keras訓練數據
- 27. 爲什麼在keras中未指定DNN的預訓練?
- 28. 如何使用訓練好的Keras模型進行新的預測?
- 29. Keras在model.fit()後刪除圖層()
- 30. 當圖層不可訓練時擬合keras模型會產生不一致的結果
檢查:http://stackoverflow.com/questions/41378461/how-to-use-models-from-keras-applications-for-transfer-learnig/ 41386444#41386444 – indraforyou