如何在张量流中将图像序列提供给tf.placeholder?

时间:2017-02-10 13:55:24

标签: python video tensorflow sequence recurrent-neural-network

我正在尝试制作可以对图像序列进行分类的RNN。我将数据加载到具有形状

的ndarray中
data = (n_sequences, n_frames, image_width, image_height, channels)

我有2个课程,10

我创建了一个占位符,用于在训练期间将数据提供给我,并对其进行了重新整理:

n_input = image_width*image_height*channels

train_data_node = tf.placeholder(
    tf.float32,
    shape=(batch_size, n_frames, n_input)
)

# Permuting batch_size and n_frames
train_data_node = tf.transpose(train_data_node, [1, 0, 2])

# Reshaping to (n_frames*batch_size, n_input)
train_data_node = tf.reshape(train_data_node, [-1, n_input])

# Split to get a list of 'n_frames' tensors of shape (batch_size, n_input)
train_data_node = tf.split(0, n_frames, train_data_node)

现在我设置batch_size = 1,并且对于每个训练步骤,我得到下一个样本:

batch_x = train_data[step,...]
batch_x = batch_x.reshape((batch_size, n_frames, n_input))

然后我跑

sess.run(optimizer, feed_dict={train_data_node: batch_x})

我收到以下错误:

line 337, in main
sess.run(optimizer, feed_dict={train_data_node: batch_x,
TypeError: unhashable type: 'list'

我尝试通过将batch_x转换为tuple来修复此问题,这是一个不可变的数据类型,但是当我调试时,即使所有内容都是tuple,我仍会得到相同的错误:

batch_x={tuple}<type 'tuple'>: (((255.0, 218.0, 234.0, ..., 65.0, 131.0)),)

我还阅读了this并试了一下,这给了我关于尺寸的其他问题。当我修复维度问题时,它会抛出与以前完全相同的错误。我想我做错了什么,但我不知道是什么:\

0 个答案:

没有答案