【发布时间】:2021-02-04 12:42:23
【问题描述】:
(这是我的第一个问题!) 我在谷歌 colab 工作。我在 keras 中微调了 Resnet50 模型并保存了权重。 现在,稍后在测试期间,我像这样加载模型权重:
res50 = keras.applications.ResNet50(weights= None, include_top=False, input_shape=(image_size, image_size, 3))
# Create the model
model = Sequential()
model.add(res50)
model.add(Flatten())
model.add(Dense(100, activation='relu'))
model.add(Dropout(0.5))#0.75
model.add(Dense(1, activation='sigmoid'))#softmax #to Sigmoid
model.summary()
new_model = model
new_model.load_weights('/content/drive/My Drive/model_weights.hdf5')
model.compile(
optimizer=keras.optimizers.Adam(1e-4),#1e-6
loss="binary_crossentropy",
metrics=["accuracy"],
)
请注意,在最后一个块中,我编译的是“model”,而不是“new_model”。然而我看到'new_model'也被编译了。此外,我注意到“模型”的权重也更新了,而不仅仅是“新模型”。基本上对任何一个进行任何更改都会更改另一个。为什么会这样?这是加载重量的正确方法吗? 我对编程有非常基本的了解。请帮忙。
【问题讨论】:
标签: machine-learning keras deep-learning neural-network google-colaboratory