我有维度 (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 回答
我可以问你,标签是否转换为分类标签?
两个,请将优化器Adam更改为SGD,其中lr = .1
三,请在Conv2D图层中删除相同内容或在模型中添加更多Conv2D MaxPooling2D图层