我想在tensorflow中进行一次2D卷积操作,该操作的滤波器依赖于迷你批次中的样本。如果迷你批次中的样本数量未知,有什么好的方法可以做到这点吗?
具体而言,我有输入数据
假设
我想执行
具体而言,我有输入数据
inp
,形状为MB x H x W x Channels
,还有形如MB x fh x fw x Channels x OutChannels
的过滤器F
。假设
inp = tf.placeholder('float', [None, H, W, channels_img], name='img_input')
。我想执行
tf.nn.conv2d(inp, F, strides=[1, 1, 1, 1])
,但是这不被允许,因为F
不能有一个迷你批次维度。有什么解决这个问题的办法吗?
tf.expand_dims
添加一个“虚拟小批量维度”,然后使用tf.nn.conv3d
,其中过滤器深度与批量大小匹配。不确定在可变批量大小的情况下效果如何。 - Robert Lacokbatch_size = tf.shape(input)[0]
的操作来推断维度并仅使用过滤器的一个切片。这只是一个建议,我从未尝试过这样的事情,因此可能会引起问题。 - Robert Lacoktf.nn.conv3d
。如果你想写一个答案,我会接受它。 - patapouf_ai