我正在试验Merku分子活性挑战,我已经创建了训练和测试数据集
数据的形状如下:
x_train.shape=(1452, 4306)
y_train.shape=(1452, 1)
x_test.shape=(363, 4306)
y_test.shape=(363, 1)
我使用了Dense
层来定义模型,如下所示:
model = Sequential()
model.add(Dense(100, activation="relu", input_shape=(4306,)))
model.add(Dense(50, activation="relu"))
model.add(Dense(25, activation="relu"))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(1))
# Compile the model
model.compile(
loss='categorical_crossentropy',
optimizer="adam",
)
model.summary()
# Train the model
model.fit(
x_train,
y_train,
batch_size=300,
epochs=900,
validation_data=(x_test, y_test),
shuffle=True
)
尝试上述代码时,出现以下错误:
ValueError: Input 0 is incompatible with layer flatten_23: expected min_ndim=3, found ndim=2
如何解决此错误
只需去除平坦层:
发送到连续层的数据基本上是一维的(忽略批处理列),因此没有什么可展平的。进入展平层的数据已经是1D了
为回归编辑:
分类交叉熵不是回归的合适成本函数,您需要使用均方误差,这通常用于所有回归任务:
相关问题 更多 >
编程相关推荐