我想在第三个纪元之后冻结以下代码的前两层的训练。总纪元设置为 10。
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))
Run Code Online (Sandbox Code Playgroud)
Nai*_*ain -1
这应该有效:
for epoch in range(3):
model.fit(.., epochs=1)
# save the weights of this model
model.save_weights("weight_file.h5")
# freeze the layers you want
for layer in model.layers[:2]:
layer.trainable = False
Run Code Online (Sandbox Code Playgroud)
为了使用这些权重进一步训练,但前两层已冻结,您需要再次编译模型。
model.compile(..)
# train further
for epoch in range(3, 10):
model.fit(..., epochs=1)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2950 次 |
最近记录: |