Python tf.nn.sparse\u softmax\u cross\u entropy\u与\u logits有关的错误

Python tf.nn.sparse\u softmax\u cross\u entropy\u与\u logits有关的错误,python,tensorflow,neural-network,entropy,Python,Tensorflow,Neural Network,Entropy,我正在使用tf.nn.sparse\u softmax\u cross\u entropy\u和\u logits并且当我通过标签和logits时,我得到以下错误 tensorflow.python.framework.errors\u impl.InvalidArgumentError:标签 必须是1-D,但得到形状[50,1] 我不明白为什么拥有一个形状[50,1]与1D是不同的 我不明白为什么拥有一个形状[50,1]和1D是不一样的 虽然只需简单挤压即可将[50,1]2D矩阵重塑为[50]

我正在使用
tf.nn.sparse\u softmax\u cross\u entropy\u和\u logits
并且当我通过标签和logits时,我得到以下错误

tensorflow.python.framework.errors\u impl.InvalidArgumentError:标签 必须是1-D,但得到形状[50,1]

我不明白为什么拥有一个形状
[50,1]
与1D是不同的

我不明白为什么拥有一个形状[50,1]和1D是不一样的

虽然只需简单挤压即可将[50,1]2D矩阵重塑为[50]1D矩阵,但Tensorflow永远不会自动实现这一点


tf.nn.sparse\u softmax\u cross\u entropy\u with\u logits
用于检查输入形状是否正确的唯一启发式方法是检查其维数。如果不是1D,则在不尝试其他启发式方法(如检查输入是否可以压缩)的情况下失败。这是一个安全特性。

问题在于标签是二维张量(即[50,1])。只需使用
tf.重塑(,[-1])
使标签成为一维张量(即[50])