gpt4 book ai didi

tensorflow - 在特定时期后如何卡住特定层的训练

转载 作者:行者123 更新时间:2023-12-03 20:13:15 24 4
gpt4 key购买 nike

我想在第三个时期之后卡住以下代码的前两层的训练。总纪元设置为 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'))

最佳答案

如何“卡住”Keras 层?

“卡住”一个层意味着将它从训练中排除,即它的权重永远不会更新。这在微调模型或对文本输入使用固定嵌入的上下文中很有用。

您可以更改图层的可训练属性。

for layer in model.layers[:2]:
layer.trainable = False

要使此功能生效,您需要调用 编译()修改可训练属性后在您的模型上。如果不这样做,您将收到警告“可训练权重与收集的可训练权重之间存在差异”,并且您的所有层仍可训练。所以:
  • 构建和编译模型
  • 训练 3 个 epochs
  • 卡住您想要的图层
  • 再次编译模型
  • 训练剩余的 epochs
  • 关于tensorflow - 在特定时期后如何卡住特定层的训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59246178/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com