首页 文章

为什么我的模型的训练和验证准确度在一个时代后保持不变? [Keras]

提问于
浏览
0

我有维度 (4684, 150, 150, 3) 的4684图像数据,并标记维 (4684, 8) 的数据 . 在第一个时期,训练准确度为0.5695,验证准确度为0.7535 . 在第一个时代之后,我的模型没有学习,它的训练和验证准确性保持不变 . 那么,可能是什么问题?你们能帮助我吗?

这是我的模特 .

model = Sequential()
model.add(Conv2D(kernel_size=(3,3),filters=8,input_shape=(150, 150, 3),activation="relu",padding="valid"))
model.add(Conv2D(kernel_size=(3,3),filters=8,activation="relu",padding="same"))
model.add(MaxPooling2D(pool_size=(2,2),strides=(2,2)))
model.add(Flatten())
model.add(Dropout(0.6))
model.add(Dense(100,activation="relu"))
model.add(Dense(8,activation='softmax'))
model.summary()

model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adam(lr=0.001),
              metrics=['accuracy'])

X = model.fit(data,labels,
          batch_size=batch_size,
          epochs=epochs,
          verbose=1,
          shuffle=True,
          validation_split=0.2)

plt.plot(X.history['loss'])
plt.plot(X.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'validation'], loc='upper left')
plt.show()

1 回答

  • 0

    我可以问你,标签是否转换为分类标签?

    两个,请将优化器Adam更改为SGD,其中lr = .1

    三,请在Conv2D图层中删除相同内容或在模型中添加更多Conv2D MaxPooling2D图层

相关问题