【发布时间】:2019-09-21 15:14:15
【问题描述】:
我正在尝试使用预训练的 InceptionV3 模型。但是,我想删除最初的五个图层并添加我的自定义图层。我怎样才能做到这一点?我试过model.layers.pop(0),但这并不能解决问题。
编辑:
tf.keras 在第一个答案中也没有帮助:
【问题讨论】:
标签: python tensorflow keras tf.keras
我正在尝试使用预训练的 InceptionV3 模型。但是,我想删除最初的五个图层并添加我的自定义图层。我怎样才能做到这一点?我试过model.layers.pop(0),但这并不能解决问题。
编辑:
tf.keras 在第一个答案中也没有帮助:
【问题讨论】:
标签: python tensorflow keras tf.keras
model.layers.pop() 在tf.keras 中的工作方式与在Keras 中的工作方式不同。在tf.keras 中,model.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)
【讨论】:
initial 五层。我有自定义输入和其他图层。
input 的代码的 sn-p 将在此处特别提供帮助。谢谢。
由于从输入开始的前几层发生了变化,因此无法使用预训练的权重。因此,可以直接从这里获取架构并进行相应的修改,而不是尝试复杂的手术。
https://github.com/keras-team/keras-applications/blob/master/keras_applications/inception_v3.py
【讨论】:
k 层。