【发布时间】:2019-05-06 07:13:42
【问题描述】:
model.fit 产生异常:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot update variable with shape [] using a Tensor with shape [32], shapes must be equal.
[[{{node metrics/accuracy/AssignAddVariableOp}}]]
[[loss/dense_loss/categorical_crossentropy/weighted_loss/broadcast_weights/assert_broadcastable/AssertGuard/pivot_f/_50/_63]] [Op:__inference_keras_scratch_graph_1408]
模型定义:
model = tf.keras.Sequential()
model.add(tf.keras.layers.InputLayer(
input_shape=(360, 7)
))
model.add(tf.keras.layers.Conv1D(32, 1, activation='relu', input_shape=(360, 7)))
model.add(tf.keras.layers.Conv1D(32, 1, activation='relu'))
model.add(tf.keras.layers.MaxPooling1D(3))
model.add(tf.keras.layers.Conv1D(512, 1, activation='relu'))
model.add(tf.keras.layers.Conv1D(1048, 1, activation='relu'))
model.add(tf.keras.layers.GlobalAveragePooling1D())
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Dense(32, activation='softmax'))
输入要素形状
(105, 360, 7)
输入标签形状
(105, 32, 1)
编译语句
model.compile(optimizer='adam',
loss=tf.keras.losses.CategoricalCrossentropy(),
metrics=['accuracy'])
Model.fit 语句
model.fit(features,
labels,
epochs=50000,
validation_split=0.2,
verbose=1)
任何帮助将不胜感激
【问题讨论】:
-
尝试通过
np.squeeze(labels)将labels的形状更改为(105,32)。 -
@giser_yugang 哇,谢谢,这似乎奏效了。你能解释一下为什么吗?创建回复,我会将其标记为正确答案。谢谢
标签: python-3.x tensorflow tensor tensorflow2.0