Keras:无法将形状为(14,1)的输入数组广播到形状为(14)的数组。

3
我正在Windows 10上使用Keras和Tensorflow。我尝试为成人数据集(https://archive.ics.uci.edu/ml/datasets/Adult)创建一个机器学习模型。
首先,我进行One Hot编码,然后尝试训练模型,但是出现以下错误:"ValueError: could not broadcast input array from shape (14,1) into shape (14)" 即使我将input_dim更改为14以外的其他值,仍会出现相同形状的相同错误。
我做错了什么?
df = pd.read_csv("adult_data.csv",header=None)
X = df.iloc[:,0:14]
Y = df.iloc[:,14]

encoder = LabelEncoder()
#X
for i in [1,3,5,6,7,8,9,13]:
   column = X[i]
   encoder.fit(column)
   encoded_C = encoder.transform(column)
   X[i] = np_utils.to_categorical(encoded_C)

print(X.shape)
#Y
encoder.fit(Y)
en_Y = encoder.transform(Y)
Y = np_utils.to_categorical(en_Y)

#model
model = Sequential()
model.add(Dense(21, input_dim=14, activation="relu"))
model.add(Dense(2, activation="softmax"))
#compile
model.compile(loss="categorical_crossentropy",optimizer="adam",metrics=
["accuracy"])

#train
model.fit(X,Y, epochs=50, batch_size=100)
score = model.evaluate(X,Y)
print("Accuracy: {}%".format(score[0]))

完整错误:

Traceback (most recent call last):
  File "main.py", line 36, in <module>
    model.fit(X,Y, epochs=50, batch_size=100)
  File "C:\Users\K\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\models.py", line 960, in fit
    validation_steps=validation_steps)
  File "C:\Users\K\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\engine\training.py", line 1574, in fit
    batch_size=batch_size)
  File "C:\Users\K\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\engine\training.py", line 1407, in _standardize_user_data
    exception_prefix='input')
  File "C:\Users\K\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\engine\training.py", line 128, in _standardize_input_data
    arrays[i] = array
 ValueError: could not broadcast input array from shape (14,1) into shape (14)

4
你使用的Keras版本是哪个?我尝试了你的代码,使用Keras 1.2.1版本,没有出现任何错误。 - dkato
1
我之前使用的是2.1.1版本,现在已经更新到了2.1.2版本,现在可以正常工作了。感谢你的提示! - Konstantin K
好的。更正一下:在上面的评论中,我使用的是最新版本2.1.2,而不是1.2.1。 - dkato
我正在使用链分类器处理多类问题时遇到了同样的问题,并且在使用预测方法时也出现了相同的错误。我正在使用更新版本的Keras,但仍然遇到相同的错误。有什么建议吗? - Aizayousaf
1个回答

7

通过更新到 Keras 版本 2.1.2,修复了错误。


你救了我的一天! - joel.wilson
懒人专用:pip install keras --upgrade - Johan Dettmar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接