我有一个包含 3570 个标签的数据集。当我使用sparse_categorical_crossentropy
作为损失函数时,输出形状不匹配。
model = Sequential()
model.add(Dense(1024, input_dim=79, activation='relu'))
model.add(Dense(2048, activation='relu'))
model.add(Dense(3570, activation='sigmoid'))
model.compile(loss='sparse_categorical_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
model.fit(x_train, y_train,
epochs=10,
batch_size=1,
validation_data=(x_valid, y_valid))
输出是
ValueError: Error when checking model target: expected dense_42 to have shape (None, 1) but got array with shape (1055, 3570)
然后我发现了这个问题#2444并用于np.expand_dims(y, -1)
更改代码。但是还是有错误。
model = Sequential()
model.add(Dense(1024, input_dim=79, activation='relu'))
model.add(Dense(2048, activation='relu'))
model.add(Dense(3570, activation='sigmoid'))
model.compile(loss='sparse_categorical_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
model.fit(x_train, np.expand_dims(y_train, -1),
epochs=10,
batch_size=1,
validation_data=(x_valid, np.expand_dims(y_valid, -1)))
错误
ValueError: Error when checking model target: expected dense_45 to have 2 dimensions, but got array with shape (1055, 3570, 1)
我应该如何更改代码?