当我试图实现迁移学习来训练我的ConvNet模型时,在这个Keras博客(goo.gl/N60H13)中有一段我不理解的代码。VGG16总共有21层,但是为了冻结除最终FC之外的所有其他层,我需要冻结的层数是20。有人知道为什么博客会变成24 (:25)吗?
代码:
for layer in model.layers[:25]:
layer.trainable = False发布于 2020-01-29 14:07:59
layer.trainable = False用于机器学习中的迁移学习概念。为了做到这一点,我们冻结了24层,并保持输出层不冻结,这样我们就可以在上面训练我们自己的网络。
简单地说,最后一层是输出层。我们不想冻结它。
发布于 2018-01-29 15:46:44
也许这与Kera的框架有关。
从这个gist,我们知道VGG16 model for Keras has been obtained by directly converting the Caffe model.,所以,它最初也计入zero-padding layers。仔细检查一下revision history,它确实包含了这些zero-padding layers。
对于来自Kera的当前版本的VGG16,也许应该是
for layer in model.layers[:15]:
layer.trainable = Falsehttps://stackoverflow.com/questions/43473583
复制相似问题