我正在进口keras的preggined vgg模型,从keras.applications.vgg16 import VGG16
。 我注意到标准型号是keras.models.Sequential
,而预训练型号是keras.engine.training.Model
型号。在standrd模型中,我可以使用add
添加图层,并使用pop
删除它们。在keras-pretrained模型中,我似乎无法使用pop
。有没有其他的选择呢? 谢谢在keras预训练模型中,我可以删除图层吗?
1
A
回答
0
取决于你想要删除。如果你想删除最后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发布中所述。
备注:当您修改预训练模型中的图层时,对结构和输入/输出形状进行可视化会特别有帮助。 pydot
和graphviz
是特别有用的:
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))
相关问题
- 1. Keras中可以有不可训练的层吗?
- 2. Keras训练稀疏模型
- 3. 保存训练模型在Keras
- 4. 如何更改Mxnet中预训练模型中的图层
- 5. 如何在keras中添加可训练的hadamard产品图层?
- 6. 加载训练有素的Keras模型并继续训练
- 7. Tensorflow:使用预训练以来模型
- 8. 如何使用TensorFlow java api删除预训练模型的输出层?
- 9. 预训练初始v3模型(tensorflow)的图层名称
- 10. 特征与Keras预先训练CNN模型
- 11. 我可以用cpu训练初始v3模型吗?
- 12. 在keras中的预训练密集层之间添加丢失层
- 13. Keras - 获得训练层的权重
- 14. 是否可以训练keras中的多个图像大小?
- 15. 是否可以保存经过训练的图层以在Keras上使用图层?
- 16. Keras LSTM不训练
- 17. Keras准确性我的模型始终为0训练
- 18. 在R中使用mxnet预训练的图像分类模型
- 19. 意大利语Syntaxnet预训练模型
- 20. 预训练词嵌入和训练词嵌入keras中的区别
- 21. NLP模型训练
- 22. 如何用Cifar在Keras中训练单层神经网络?
- 23. 为什么在keras中未指定DNN的预训练?
- 24. Keras在model.fit()后删除图层()
- 25. 可以将受过训练的分类模型存储在Apache Spark中吗?
- 26. 我可以从Google Cloud ML Engine下载受过训练的模型吗?
- 27. 训练文本模型以预测真假
- 28. 用keras训练一个巨大的模型开始
- 29. 使用keras ImageGenerator训练多输入模型
- 30. 用部分共享权重串联训练两个Keras模型
检查:http://stackoverflow.com/questions/41378461/how-to-use-models-from-keras-applications-for-transfer-learnig/ 41386444#41386444 – indraforyou