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

yas*_*mar -1 python machine-learning tensorflow

我想在python中使用tensorflow创建一个聊天机器人.但是当我训练数据集时,我收到了这个错误.

提高ValueError(err.message)ValueError:Shape必须为rank 2,但对于'model_with_buckets/sequence_ loss/sequence_loss_by_example/sampled_softmax_loss/LogUniformCandidateSampler'(op:'LogUniformCandidateSampler'),其输入形状为[?].

任何帮助赞赏.谢谢

小智 7

当我试图在tensorflow 1.0上运行与旧版本兼容的tensorflow"seq2seq教程代码"时,我得到了类似的错误,这主要是由于函数参数的顺序改变(tf.nn.sampled_softmax).它期待输入(等级2)但你传递l abels(等级1)所以根据函数的定义改变参数的顺序.

在tf 0.12.0中: 定义:tf.nn.sampled_softmax_loss(权重,偏差,输入,标签, num_sampled,num_classes,num_true = 1,sampled_values =无,remove_accidental_hits = True,partition_strategy ="mod",name ="sampled_softmax_loss")

在tf 1.0: tf.nn.sampled_softmax_loss(权重,偏差,标签,输入, num_sampled,num_classes,num_true = 1,sampled_values =无,remove_accidental_hits = True,partition_strategy ='mod',name ='sampled_softmax_loss')