训练阶段CNN验证准确性和损失函数的奇怪行为

2024-09-29 17:45:14 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我的网络架构:

cnn3 = Sequential()
cnn3.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))
cnn3.add(MaxPooling2D((2, 2)))
cnn3.add(Dropout(0.25))
cnn3.add(Conv2D(64, kernel_size=(3, 3), activation='relu'))
cnn3.add(MaxPooling2D(pool_size=(2, 2)))
cnn3.add(Dropout(0.25))
cnn3.add(Conv2D(128, kernel_size=(3, 3), activation='relu'))
cnn3.add(Dropout(0.2))
cnn3.add(Flatten())
cnn3.add(Dense(128, activation='relu'))
cnn3.add(Dropout(0.4)) # 0.3
cnn3.add(Dense(4, activation='softmax'))
cnn3.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adam(),
              metrics=['accuracy'])

当我绘制了培训和验证精度以及损失函数时,我得到了下面两个数字:

我不明白为什么验证准确度和损失都不在培训准确度和损失之后

LOSS

accuracy


Tags: addinputsizeactivationkerneldropoutkerasdense
1条回答
网友
1楼 · 发布于 2024-09-29 17:45:14

您的验证是在列车损失和准确性之后进行的。由于数据集较小,验证行中的抖动更多。序列和验证之间的偏移可能有一定程度的过拟合

相关问题 更多 >

    热门问题