【发布时间】:2016-08-01 09:16:58
【问题描述】:
我正在尝试在数据集上运行编码器-解码器模型。下面是示例代码:
self._input_data = tf.placeholder(tf.int32, [batch_size, num_steps])
self._targets = tf.placeholder(tf.int32, [batch_size, num_steps])
enc_inputs.append(self._input_data) #one batch at once
dec_inputs.append(self._targets)
model = seq2seq.basic_rnn_seq2seq(enc_inputs, dec_inputs, tf.nn.rnn_cell.BasicLSTMCell(size, state_is_tuple=True))
我收到类型不匹配的错误(如下所述)。有谁知道解决这个问题?
tensor_util.py, line 290, in _AssertCompatible
(dtype.name, repr(mismatch), type(mismatch).__name__))
TypeError: Expected int32, got -0.1 of type 'float' instead.
【问题讨论】:
-
似乎,将 tf.int32 更改为 tf.float32 可以解决问题。我不知道为什么,但程序现在可以正常运行了。
-
当您尝试将浮点值插入已键入为 int32 的张量时会出现类型错误。 tensor_util.py 用于在 python 中构造张量,然后将数据或图形发送到后端客户端执行。从您的问题中不清楚如何重现您的错误。 _input_data 是如何被初始化的?使用包含浮点数的值?
-
encode_input 和 decode_input 是简单的单词 id(整数)。接下来,所有进程都在 basic_rnn_seq2seq API 中处理。
标签: python tensorflow deep-learning lstm