我的模型定义是:
inputs = keras.Input(shape=(28,28))
dense = keras.layers.Dense(64, activation="relu")
x = dense(inputs)
x = keras.layers.Dense(64, activation="relu")(x)
outputs = keras.layers.Dense(10)(x)
model = keras.Model(inputs=inputs, outputs=outputs, name="mnist_model")我将使用以下内容来训练网络:
model.compile(optimizer="sgd", loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy'])
history = model.fit(x_train, y_train, batch_size=10, epochs=30, verbose=2)x_train的形状是(55000,28,28),而y_train的形状是(55000,),我得到了这个错误:
ValueError: Shape mismatch: The shape of labels (received (10, 1)) should equal the shape of logits except for the last dimension (received (10, 28, 10))发布于 2020-12-29 10:04:30
@Marco Cerliani所说的意思是您应该将您的代码更改为
inputs = keras.Input(shape=(28,28))
output = keras.layers.Flatten()(inputs)
output = keras.layers.Dense(64, activation="relu")(output)
output = keras.layers.Dense(64, activation="relu")(output)
outputs = keras.layers.Dense(10)(output)
model = keras.Model(inputs=inputs, outputs=outputs, name="mnist_model")https://stackoverflow.com/questions/65470343
复制相似问题