我有尺寸为(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()
答案 0 :(得分:0)
我可以问你,标签是否转换为分类标签?
然后是两个,请将lr = .1的优化程序Adam更改为SGD
三个,请在Conv2D图层中删除相同的图层,或添加更多Conv2D + MaxPooling2D图层进行建模