首页 > 解决方案 > dynamic_decode 抛出 ValueError

问题描述

我正在尝试构建一个非常简单的 seq2seq 模型,但我不断收到奇怪的错误。我正在构建的模型类似于https://github.com/tensorflow/nmt

我在解码阶段不断收到 ValueError

lstm_dec = tf.contrib.rnn.LSTMCell(nodes)

helper = tf.contrib.seq2seq.TrainingHelper(
    output_embed, output_len, time_major=False, name = "trainHelper"
)

projLayer = tf.layers.Dense(DICTIONARY_SIZE, name="projection_layer")

# Decoder
decoder = tf.contrib.seq2seq.BasicDecoder(
    lstm_dec,
    helper,
    last_state
)

# Dynamic decoding
outputs, _, _ = tf.contrib.seq2seq.dynamic_decode(decoder)

logits = projLayer(outputs.rnn_output)
错误如下所示:

ValueError: Could not flatten dictionary. Key had 2 elements, but value had 1 elements. Key: [<tf.Tensor 'decoding/decoder/transpose:0' shape=(70, ?, 128) dtype=float32>, <tf.Tensor 'decoding/decoder/transpose_1:0' shape=(70, ?) dtype=int32>]

这发生在我做 dynamic_decode() 以防万一 - 我的 batch_size 是 70 和 nodes=128

有没有其他人遇到过类似的问题?

谢谢!

标签: pythontensorflow

解决方案


推荐阅读