【发布时间】:2023-04-06 02:52:01
【问题描述】:
我正在尝试拟合一个模型,该模型为 X 数组的每一行预测 1 或 0。 X 是形状 (1000,26) 的数组,Y 是形状 (1000, 1) 的数组。无论出于何种原因,tf/keras 似乎都不喜欢我的输入。
到目前为止,我已尝试更改输入类型。它以泡菜的形式出现,然后通过使用“np.values”函数变成一个 numpy 数组。在我使用 tf.constant(training) 代替 X = training.values 之前,但所做的所有更改都给了我一个稍微不同的错误(都包括在下面)
这是减去其他一些数据文件的导入和加载的完整代码。
training = pd.read_pickle("./training.pkl")
train_labels = pd.read_pickle("./train_labels.pkl")
X = training.values
Y = train_labels.values
model = models.Sequential()
model.add(layers.Dense(46, activation='relu', input_dim=26))
model.add(layers.Dense(46, activation='relu'))
model.add(layers.Dense(46, activation='relu'))
model.add(layers.Dense(2, activation='softmax'))
model.summary()
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['binary_accuracy'])
model.fit(X, Y, epochs=3, steps_per_epoch=100)
当前错误:
Error when checking target: expected dense_24 to have shape (2,) but got array with shape (1,)
使用 tf.constant 时的错误信息
Incompatible shapes: [1000] vs. [1000,2]
【问题讨论】:
-
在最后一层中,您在 Dense 层中使用了 2 个单位。将其设为 1 个单位,以便输出形状为 ( None , 1 ) 与标签匹配。
标签: tensorflow keras model