ValueError: Shapes (None, 1) and (None, 10) are incompatible
ValueError: Shapes (None, 1) and (None, 10) are incompatible
我有 7 个类别要分类,我在我的 y_train 上使用了标签编码器,即使我收到此错误并将其转换为浮点数。请查看这个问题。Added the picture of all the shapes required
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)
您应该从类别数组中转换 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
我有 7 个类别要分类,我在我的 y_train 上使用了标签编码器,即使我收到此错误并将其转换为浮点数。请查看这个问题。Added the picture of all the shapes required
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)
您应该从类别数组中转换 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