gpt4 book ai didi

tensorflow - 如何动态选择卷积步长?

转载 作者:行者123 更新时间:2023-12-02 18:47:49 25 4
gpt4 key购买 nike

如何动态选择卷积步幅?

使用占位符似乎不起作用:

s = tf.placeholder(np.int32)
image = tf.placeholder(np.float32, [None, 3, 32, 32])
tf.layers.conv2d(image,
filters=32,
kernel_size=[3, 3],
strides=[s, s],
padding='same',
data_format='channels_first')

这会产生一个TypeError

进行池化时,pool_sizestrides 也会出现类似的困难。

最佳答案

不幸的是,Tensorflow 不允许将张量传递给 conv2d 的定义。我使用的方法基本上是以 1 的步幅运行 conv2d,然后用所需的步幅对结果进行切片。可能不是最佳方法,但它有效,并且 tf.strided_slice 可以使用张量。所以在你的情况下,它会是这样的:

s = tf.placeholder(np.int32,[4])
image = tf.placeholder(np.float32, [None, 3, 32, 32])
convoluted = tf.layers.conv2d(image,
filters=32,
kernel_size=[3, 3],
strides=[1,1],
padding='same',
data_format='channels_first')
result = tf.strided_slice(convoluted,
[0,0,0,0],
tf.shape(convoluted),
s)

然后,您可以在运行期间将 4 个步幅大小传递给 s,其中每个条目对应于卷积输入的相应维度中的步幅。

关于tensorflow - 如何动态选择卷积步长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47065820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com