python - 如何防止过拟合
问题描述
我正在为我的最后一个项目做准备,我是 ConVnets 的新手。我想区分哪一个是真实图像和恶搞图像。我有 +-8000 数据(合并)。我想给你看一些我的训练日志。
Epoch 7/100
311/311 [==============================] - 20s 63ms/step - loss: 0.3274 - accuracy: 0.8675 - val_loss: 0.2481 - val_accuracy: 0.9002
Epoch 8/100
311/311 [==============================] - 20s 63ms/step - loss: 0.3189 - accuracy: 0.8691 - val_loss: 0.3015 - val_accuracy: 0.8684
Epoch 9/100
311/311 [==============================] - 19s 62ms/step - loss: 0.3201 - accuracy: 0.8667 - val_loss: 0.2460 - val_accuracy: 0.9036
Epoch 10/100
311/311 [==============================] - 19s 62ms/step - loss: 0.3063 - accuracy: 0.8723 - val_loss: 0.2752 - val_accuracy: 0.8901
Epoch 11/100
311/311 [==============================] - 19s 62ms/step - loss: 0.3086 - accuracy: 0.8749 - val_loss: 0.2717 - val_accuracy: 0.8988
[INFO] evaluating network...
model = Sequential()
inputShape = (height, width, depth)
chanDim = -1
if K.image_data_format() == "channels_first":
inputShape = (depth, height, width)
chanDim = 1
model.add(Conv2D(16, (3, 3), padding="same", input_shape=inputShape)) model.add(Activation("relu"))
model.add(BatchNormalization(axis=chanDim))
model.add(Conv2D(16, (3, 3), padding="same"))
model.add(Activation("relu"))
model.add(BatchNormalization(axis=chanDim))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.3))
model.add(Conv2D(32, (5, 5), padding="same"))
model.add(Activation("relu"))
model.add(BatchNormalization(axis=chanDim))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.3))
model.add(Flatten())
model.add(Dense(128))
model.add(Activation("relu"))
model.add(BatchNormalization())
model.add(Dropout(0.6))
model.add(Dense(classes))
model.add(Activation("softmax"))
输入是 32x32,它有两个类。我EarlyStopping
在 keras 中使用以防止过度拟合。而且我总是改变学习率的值并尝试改变神经元节点的数量,但训练总是停止在 20 个 epoch 以下。有什么建议可以防止过拟合吗?因为我是卷积神经网络的初学者。提前致谢 !
PS LR:0.001 BS:20 纪元:100
解决方案
推荐阅读
- c# - ActionMailer.Net.Mvc.EmailResult - 内联图像不在电子邮件中,如何查看结果电子邮件的 html 正文?
- hibernate - Hibernate 搜索多个实体
- python - 为什么我不能跳出我的循环?(Python)
- ionic-framework - Ionic 3:忽略给定 div 内的“后退”滑动
- ios - Chat TableView Cell:一个 UIView,其大小应取决于较大的包含标签
- javascript - Chrome 性能监视器中每种颜色的含义是什么?
- docker - docker-compose 容器上的卷为空或有奇怪的内容
- db2 - Db2 zos 更新表中的值集
- c# - C# 正则表达式将捕获多组字符之间的选择
- machine-learning - WEKA 更改预测中的小数位数