簡體   English   中英

如何刪除(彈出)Keras InceptionV3預訓練模型的初始層?

[英]How to remove (pop) initial layers of Keras InceptionV3 pre-trained model?

我正在嘗試使用預先訓練過的InceptionV3模型。 但是,我想刪除最初的五個圖層並添加我的自定義圖層。 我怎樣才能做到這一點? 我嘗試過model.layers.pop(0) ,但僅憑這一點無法解決問題。

編輯:

如第一個答案所述, tf.keras也沒有幫助:

在此輸入圖像描述

model.layers.pop()不會以同樣的方式在工作tf.keras ,因為它在沒有按Keras tf.kerasmodel.layers是模型的視圖。 您無法刪除圖層,但可以執行的操作是定義要輸出的圖層。 例如,

base_model = InceptionV3(shape=shape, weights="imagenet", include_top=True)

# you don't want the last five layers:
base_model_output = base_model.layers[-6].output

# new layers
outputs = Dense(....)(base_model_output)
model = Model(base_model.input, outputs)

由於從輸入開始的前幾個層被改變,因此不能使用預訓練的權重。 因此,可以直接從這里獲取架構並相應地進行修改,而不是嘗試復雜的外科手術。

https://github.com/keras-team/keras-applications/blob/master/keras_applications/inception_v3.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM