错误值错误:在转换后的代码中:
<ipython-input-63-1e3afece3370>:10 train_step *
loss += loss_func(targ, logits)
<ipython-input-43-44b2a8f6794e>:11 loss_func *
loss_ = loss_object(real, pred)
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/losses.py:124 __call__
losses = self.call(y_true, y_pred)
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/losses.py:216 call
return self.fn(y_true, y_pred, **self._fn_kwargs)
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/losses.py:973 sparse_categorical_crossentropy
y_true, y_pred, from_logits=from_logits, axis=axis)
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/backend.py:4431 sparse_categorical_crossentropy
labels=target, logits=output)
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/nn_ops.py:3477 sparse_softmax_cross_entropy_with_logits_v2
labels=labels, logits=logits, name=name)
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/nn_ops.py:3393 sparse_softmax_cross_entropy_with_logits
logits.get_shape()))
ValueError: Shape mismatch: The shape of labels (received (128,)) should equal the shape of logits except for the last dimension (received (16, 424)).
Run Code Online (Sandbox Code Playgroud)
我参考的代码使用了 legacyseq2seq.sequence_loss_by_example,现在已弃用。所以我试过 SparseCategoricalCrossentropy 损失方法抛出同样的错误
模型(Keras)
def build_model(training=True):
input_ = tf.keras.layers.Input(shape=(unfold_max,), name='inputs')
embedding …Run Code Online (Sandbox Code Playgroud)