ValueError:形状(无,1)和(无,10)不兼容

2024-03-29 12:35:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有7个分类,我在我的y_列车上使用了标签编码器,即使我得到了这个错误,也将其转换为float。请调查一下这个问题

le = LabelEncoder() 
yy_train=le.fit_transform(y_train)


yy_train=yy_train.astype(float)

model = Sequential()

model.add(Dense(186, input_shape=(180,), activation = 'relu'))

model.add(Dense(256, activation = 'relu'))
model.add(Dropout(0.6))

model.add(Dense(128, activation = 'relu'))
model.add(Dropout(0.5))

model.add(Dense(10, activation = 'softmax'))

model.compile(loss='categorical_crossentropy', metrics=['accuracy'], optimizer='adam')

history = model.fit(X_train, yy_train, batch_size=64, epochs=30)

Tags: leaddmodel分类train标签编码器float
1条回答
网友
1楼 · 发布于 2024-03-29 12:35:46

您应该从类别数组中转换yy_train 指向指示类别的二进制值数组

例如

[1,3,10,6]
 >
[
[1,0,0,0,0,0,0,0,0,0]
[0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,1],
[0,0,0,0,0,1,0,0,0,0]
]

n = len(yy_train)
YY_train = np.zeros(n,10)
for i in range(n):
    YY_train[i,yy_train[i]-1] = 1

相关问题 更多 >