在凯拉斯定义模型
回答
此代码行创建一个名为ResNet50
的网络体系结构(您可以找到关于它的更多信息here)。 weights='imagenet'
使得Keras
加载该网络的权重,该网络已经在imagenet
数据集上接受过培训。没有这些信息,Keras
只能够准备网络架构,但不能将任何权重设置为“好”值,因为它不知道模型的用途。这是通过指定数据集来确定的。
如果您正在使用其他数据集,那么您将该模型用作预先训练的模型。你可以找到关于这种技术的更多信息here;但总体思路是:在模型已经在任何复杂(图像)数据集上进行训练之后,它将在其最低层(大部分时间:卷积)中学习以检测非常基本的特征,例如边缘,拐角等这有助于模型学习更快地分析自己的数据集,因为它不必再学习检测这些基本特征。
感谢您的回复。但是我正在使用不同的数据集。如何使用已在其他数据集上训练过的网络的权重来帮助我的模型学习(或使用来自预训练模型的权重的重要性?) –
@AKSHAYAAVAIDYANATHAN请参阅编辑。 – FlashTek
以下@FlashTek答案,我们也可以在我们的数据集上训练这个模型。
请看下面的代码:
model = applications.ResNet50(weights = "imagenet", include_top=False,
input_shape = (img_width, img_height,3))
# Freeze the layers which you don't want to train. Here I am freezing the first 30 layers.
for layer in model.layers[0:30]:
layer.trainable = False
for layer in model.layers[30:]:
layer.trainable = True
#Adding custom Layers
x = Flatten()(model.output)
# x = Dense(1024, activation="relu")(x)
# x = Dropout(0.5)(x)
# x = Dense(1024, activation="relu")(x)
# x = Dropout(0.5)(x)
x = Dense(1024, activation="relu")(x)
predictions = Dense(2, activation="softmax")(x)
在上面的代码中,我们可以是指定我们如何RESNET的许多层对我们的训练数据集通过分配layer.trainable是真就训练它你的数据集或否则为false。
除此之外的,我们也可以在网络后,如图添加自定义层
这是一个有趣的解释。谢谢。 –
- 1. 在凯拉斯CRF的LSTM
- 2. 凯拉斯的冷冻模型在修复后不能预测
- 3. 模型的输出张量必须是凯拉斯张量
- 4. 在凯拉斯多次呼叫“合适”
- 5. 凯拉斯LSTM的输入维度
- 6. 定义斯卡拉构造
- 7. 斯卡拉定义的超
- 8. 切片/在凯拉斯分裂一层像在caffe
- 9. 确定型结构在斯卡拉
- 10. 定义的OCaml风格型变异体在斯卡拉
- 11. model.evaluate()在凯拉斯不包括所有数据点
- 12. 如何在凯拉斯实施三重损失?
- 13. 如何在凯拉斯获得sklearns子集多标签精度?
- 14. 在凯马/斯卡拉有条件地重写术语
- 15. 在神经网络中获取0或1作为概率值凯拉斯序列模型
- 16. 转换JsValue斯卡拉Play2到模型
- 17. 斯卡拉 - 替代模型的使用
- 18. 部分模型的斯卡拉成语?
- 19. 阿达格拉德在凯拉斯怎么样? Keras Optimizer中self.weights的含义是什么?
- 20. 模式在斯卡拉
- 21. 重用斯卡拉类型的方法定义
- 22. 斯卡拉正确定义一个抽象数据类型
- 23. 为什么斯凯拉兹半群不是协变的?
- 24. 重建凯拉斯路透数据集中的新闻文本
- 25. 如何摆脱与凯拉斯tensorflow详细信息
- 26. 玩斯卡拉自定义模板格式
- 27. 斯卡拉演员消息定义
- 28. 斯卡拉:扩展地图和定义+
- 29. 定义斯卡拉功能不同
- 30. 斯卡拉定义的顺序?
如果您的问题已经解决了,你应该标记最有用的答案,解决关闭这个主题粘层。 – FlashTek