gpt4 book ai didi

machine-learning - 我可以删除预训练 Keras 模型中的层吗?

转载 作者:行者123 更新时间:2023-11-30 09:00:23 25 4
gpt4 key购买 nike

我正在 Keras 中导入预训练的 VGG 模型,并使用

from keras.applications.vgg16 import VGG16

我注意到标准模型的类型是keras.models.Sequential,而预训练模型的类型是keras.engine.training.Model。我通常分别使用 addpop 为顺序模型添加和删除层,但是,我似乎无法将 pop 与预训练模型一起使用。

对于这些类型的模型,是否有 pop 的替代方案?

最佳答案

取决于您要删除的内容。如果您想删除最后一个 softmax 层并使用模型进行迁移学习,您可以将 include_top=False kwarg 传递到模型中,如下所示:

from keras.applications.vgg16 import VGG16
IN_SHAPE = (256, 256, 3) # image dimensions and RGB channels

pretrained_model = VGG16(
include_top=False,
input_shape=IN_SHAPE,
weights='imagenet'
)

我最近写了一篇关于此用例的博客文章,其中包含一些代码示例并进行了更详细的介绍:http://innolitics.com/10x/pretrained-models-with-keras/

如果您想对模型架构进行更多修改,可以通过 pretrained_model.layers.pop() 访问 pop() 方法,如下所示在 @indraforyou 发布的链接中进行了解释。

旁注:当您修改预训练模型中的层时,对结构和输入/输出形状进行可视化尤其有帮助。 pydotgraphviz 对此特别有用:

import pydot
pydot.find_graphviz = lambda: True
from keras.utils import plot_model
plot_model(model, show_shapes=True, to_file='../model_pdf/{}.pdf'.format(model_name))

关于machine-learning - 我可以删除预训练 Keras 模型中的层吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42313902/

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