我正在尝试像这样训练我的模型CNN:
model.fit(x_traincnn, y_train, batch_size=8, epochs=50,validation_data=
(x_testcnn, y_test))
但是,我收到此错误:
ValueError: Error when checking target: expected activation_40 to have shape (7,) but got array with shape (4,)
我发现问题是因为无法评估validation_data。我的意思是y_test还有其他尺寸。
我从数据集中得到了这些值:
n_dim = X_train.shape[1]
n_classes = y_train.shape[1]
n_dim=216
n_classes=7
x_traincnn = (17, 216, 1)
x_testcnn = (5, 216, 1)
y_test = 4
我对顺序模型的定义是:
model = Sequential()
model.add(Conv1D(4, 5,padding='same',strides=1,
input_shape=(n_dim,1)))
model.add(Activation('relu'))
model.add(Conv1D(3, 5,padding='same')) #2
model.add(Activation('relu'))
model.add(Dropout(rate=0.1))
model.add(Conv1D(3, 5,padding='same')) #3
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(n_classes))
model.add(Activation('softmax'))
opt = keras.optimizers.rmsprop(lr=0.00001, decay=1e-6)
我了解密集的莱尔课程应该有很多课程。对吧?
因此,问题在于y_test变量的形状为4。因此,如果我定义4的密集层仅适用于x_test和y_test。但我需要该模型适用于两组数据(训练和测试),并像之前提到的那样设置我的model.fit:
model.fit(x_traincnn, y_train, batch_size=8, epochs=50,validation_data= (x_testcnn, y_test))
可以帮您解决这个问题吗? 如何正确设置CNN模型?
谢谢