概述
keras中还有另一种层----dropout
导读
- 1. 原理简介
- ⑴问题分析
- ⑵添加dropout
- 2. 模型搭建
- ⑴模型总体
- ⑵Dropout层
- ⑶模型摘要部分展示
- 3. 结果展示
- ⑴ epochs = 100
- ⑵ epochs = 20
1. 原理简介
⑴问题分析
神经网络中的层可能具有相似的权重,也有可能相互影响,从而导致过拟合 .
像这样的复杂模型,存在这样的风险 .
⑵添加dropout
通过删除一些节点,使它看起来如下图,这样会使得节点相互之间影响不太大,可能消除过拟合 .
2. 模型搭建
⑴模型总体
from tensorflow.keras.optimizers import RMSprop
# Flatten the output layer to 1 dimension
x = layers.Flatten()(last_output)
# Add a fully connected layer with 1,024 hidden units and ReLU activation
x = layers.Dense(1024, activation='relu')(x)
# Add a dropout rate of 0.2
x = layers.Dropout(0.2)(x)
# Add a final sigmoid layer for classification
x = layers.Dense (1, activation='sigmoid')(x)
model = Model( pre_trained_model.input, x)
model.compile(optimizer = RMSprop(lr=0.0001),
loss = 'binary_crossentropy',
metrics = ['acc'])
⑵Dropout层
x = layers.Dropout(0.2)(x)
参数在0-1之间,表示要丢弃的单位分数,这里我们要丢弃的是20%的神经元
⑶模型摘要部分展示
3. 结果展示
⑴ epochs = 100
训练100轮的结果???
⑵ epochs = 20
两条曲线大致是同步的,过拟合的问题得到了改善 .
最后
以上就是老实中心为你收集整理的吴恩达团队 Tensorflow课程学习笔记 4-----dropout的全部内容,希望文章能够帮你解决吴恩达团队 Tensorflow课程学习笔记 4-----dropout所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复