【发布时间】:2016-10-02 21:36:57
【问题描述】:
我正在尝试对可变输入大小进行卷积。为了实现这一点,我使用了 1 的批量大小。但是,其中一个节点是一个最大池节点,它需要输入的形状作为列表 ksize:
pooled = tf.nn.max_pool(
h,
ksize=[1, self.input_size - filter_size + 1, 1, 1],
strides=[1, 1, 1, 1],
padding='VALID',
name="pool")
现在,显然 input_size 可以从输入(这是一个占位符)中推断出来:
self.input_x = tf.placeholder(tf.int32, [None, None], name="input_x")
但我不能使用self.input_x.get_shape()[0],因为形状是动态的。所以我打算在每一步将输入大小作为 feed_dict 传递。但是,我不知道如何在 feed_dict 中传递一个整数。每个占位符都是张量,所以如果我这样做:
self.input_size = tf.placeholder(tf.int32, shape=(), name="input_size")
我必须执行 self.input_size.eval() 才能获得 int 值,这给了我一个错误,我需要输入 input_size。我猜这是因为 eval 在训练步骤发生之前触发了计算,此时 input_size 没有值。
有没有一种方法可以动态获取计算输入形状的操作,或者有一种方法可以将整数传递给训练步骤?
【问题讨论】:
标签: python neural-network tensorflow convolution conv-neural-network