【发布时间】:2019-04-29 09:54:52
【问题描述】:
我是 Keras 的新手,我正在构建一个模型。我想在训练前几层时冻结模型最后几层的权重。我试图将横向模型的可训练属性设置为 False,但它似乎不起作用。这是代码和模型摘要:
opt = optimizers.Adam(1e-3)
domain_layers = self._build_domain_regressor()
domain_layers.trainble = False
feature_extrator = self._build_common()
img_inputs = Input(shape=(160, 160, 3))
conv_out = feature_extrator(img_inputs)
domain_label = domain_layers(conv_out)
self.domain_regressor = Model(img_inputs, domain_label)
self.domain_regressor.compile(optimizer = opt, loss='binary_crossentropy', metrics=['accuracy'])
self.domain_regressor.summary()
型号汇总:model summary。
如您所见,model_1 是可训练的。但是根据代码,它被设置为不可训练的。
【问题讨论】:
-
你确定这不仅仅是一个错字吗?它应该是
trainable而不是trainble(即a在b之前丢失)。 -
我发现我错过了将单词“trainable”拼写为“trainble”,可悲的是 keras 并没有警告我该模型没有属性“trainble”。这个问题可以结束了。
-
还是要感谢其他人。
-
好吧,看看错字,反正只是为了以后的读者。
-
如果您愿意,可以回答您自己的问题并将其标记为已回答:)
标签: python keras deep-learning