【发布时间】:2018-05-08 20:11:42
【问题描述】:
我想训练一个具有平面曲线的网络,我将其表示为形状为 (L,2) 的 numpy 数组。
数字 2 代表 x,y 坐标,L 是我的数据集中变化的点数。我将 x,y 视为 2 个不同的“通道”。
我实现了一个函数next_batch(batch_size),它将下一批提供为形状为(batch_size,) 的一维numpy 数组,其中包含形状为(L,2) 的二维数组元素。这些是我的曲线,如前所述,元素之间的 L 是不同的。 (我不想限制曲线中固定数量的点)。
我的问题:
如何操作来自next_batch() 的输出,以便我能够使用输入曲线为网络提供输入曲线,使用类似于 Tensorflow 教程中出现的方案:https://www.tensorflow.org/get_started/mnist/pros
即,使用feed_dict 机制。
在给定的教程中,输入大小是固定的,在教程的代码行中:
train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
batch[0] 具有固定形状:(50,784) (50 = #samples,784 = #pixels)
我无法将输入转换为形状为 (batch_size,L,2) 的 numpy 数组
因为数组在每个维度上都应该有固定的大小。
那我该怎么办?
我已经定义了一个占位符(大小未知):
#first dimension is the sample dim, second is curve length, third:x,y coordinates
x = tf.placeholder(tf.float32, [None, None,2])
但是我怎样才能正确喂它呢?
【问题讨论】:
-
填充输入是一种可能的解决方案吗?
-
很遗憾没有,在我的问题中
-
@Day_Dreamer 你必须填充它才能使用批处理。创建一个长度占位符怎么样?
标签: python python-3.x numpy tensorflow