模型数据拟合误差.目标输出需要匹配



当尝试:

model_training.fit(X_train, Y_train, validation_data=(X_test, Y_test), epochs=100)

我得到这个错误:

将形状为(25000,2)的目标数组传递给形状为(None, 3,2)的输出,同时使用损耗为binary_crossentropy。此损失期望目标具有与输出相同的形状。

这是我的模型设置。任何想法都很感激!
model_training = Sequential()
# input_layer = keras.Input(shape=(300,1))
model_training.add(InputLayer(input_shape=(300,1)))
model_training.add(Conv1D(filters=32, kernel_size=3, padding='same', activation='tanh'))
model_training.add(Dropout(0.2))
model_training.add(MaxPooling1D(pool_size=3))
model_training.add(Dropout(0.2))
model_training.add(Conv1D(filters=32, kernel_size=3, padding='same', activation='tanh'))
model_training.add(Dropout(0.2))
model_training.add(MaxPooling1D(pool_size=3))
model_training.add(Dropout(0.2))
model_training.add(Conv1D(filters=32, kernel_size=3, padding='same', activation='tanh'))
model_training.add(Dropout(0.2))
model_training.add(MaxPooling1D(pool_size=3))
model_training.add(Dropout(0.2))
model_training.add(Conv1D(filters=32, kernel_size=3, padding='same', activation='tanh'))
model_training.add(Dropout(0.2))
model_training.add(MaxPooling1D(pool_size=3))
model_training.add(Dropout(0.2))
# model_training.add(LSTM(300, dropout=0.2, recurrent_dropout=0.2))
#model.add(Dropout(0.2))
model_training.add(Dense(2))
model_training.add(Activation('sigmoid'))
model_training.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model_training.summary())

X_train shape: (25000, 300)Y_train形状:(25000,2)

model_training.add(Flatten())

这为我修复了它。需要将数据扁平化以匹配输出。

相关内容

最新更新