Python 形状必须有等级2,但它是等级1

Python 形状必须有等级2,但它是等级1,python,machine-learning,tensorflow,Python,Machine Learning,Tensorflow,我正在尝试在python中使用tensorflow制作聊天机器人。但是我在训练数据集时遇到了这个错误 提升值错误(错误消息) ValueError:形状必须为秩2,但对于“带桶/序列的模型”为秩1_ 损耗/序列损耗\u示例/采样的\u softmax\u损耗/LogUniforMcAndidate采样器'( op:'LogUniformCandidateSampler'),输入形状:[?]。 谢谢你的帮助。 感谢当我试图在tensorflow 1.0上运行与旧版本兼容的tensorflow“se

我正在尝试在python中使用tensorflow制作聊天机器人。但是我在训练数据集时遇到了这个错误

提升值错误(错误消息) ValueError:形状必须为秩2,但对于“带桶/序列的模型”为秩1_ 损耗/序列损耗\u示例/采样的\u softmax\u损耗/LogUniforMcAndidate采样器'( op:'LogUniformCandidateSampler'),输入形状:[?]。

谢谢你的帮助。
感谢

当我试图在tensorflow 1.0上运行与旧版本兼容的tensorflow“seq2seq教程代码”时,我遇到了类似的错误,这主要是由于函数的参数顺序发生了变化(tf.nn.sampled_softmax)。它需要输入(秩2),但您正在传递labels(秩1),因此请根据函数的定义更改参数的顺序

在tf 0.12.0中: 定义:tf.nn.sampled_softmax_loss(权重、偏差、输入、标签、num_sampled、num_classes、num_true=1、sampled_value=None、remove_意外点击=true、partition_strategy=“mod”、name=“sampled_softmax_loss”)

在tf 1.0中:
tf.nn.sampled_softmax_loss(权重、偏差、标签、输入、num_sampled、num_类、num_真=1、sampled_值=None、remove_意外点击=true、partition_strategy='mod',name='sampled_softmax_loss')

您能发布准确的代码片段吗?这个参数应该是一个[n,m]形状的矩阵,但是你似乎给出了一个数组(或者没有)作为参数。是的,我正在运行tensorflow 1.0,现在明白了为什么我会出现这个错误,但是我无法消除这个错误,因为tensorflow使用的所有内置库都在这里使用。它通过改变参数的顺序来工作。谢谢:)
labels_one_hot = tf.reshape(labels_one_hot, (-1, params['n_classes']))```