gpt4 book ai didi

python - Tensorflow:在 conv2D_transpose 的 output_shape 中使用 None

转载 作者:太空宇宙 更新时间:2023-11-03 10:56:07 24 4
gpt4 key购买 nike

我想在我的网络中使用 conv2d_tranpose(或反卷积)而不是上采样。这需要将 output_shape 传递给函数调用。那不是问题,我可以计算。但我想对 batch_size 使用 None 以保持设置的灵 active 。这可能吗?

这是代码行:

tf.nn.conv2d_transpose(hd_conv1, Wd_conv1, [batch_size, 14,14,64], strides=[1,2,2,1], padding="SAME")

batch_size 只是我在脚本顶部设置的一个变量。此代码运行良好,但如果我使用 None 而不是 batch_size:

TypeError: Expected binary or unicode string, got None

如果我只省略第一个维度:

ValueError: output_shape must have shape (4,), got (3,)

我觉得很奇怪,有不同的方法来处理 batch_size。有些操作干脆忽略它,比如普通的conv2d,但这里我需要明确指定。无论如何,我想知道为什么我必须自己计算 output_shape。有了给定的输入、步幅、填充,这应该很容易计算。有一个github issue关于 output_shape 的推断,遗憾的是似乎没有任何后续行动。

我这样做是否正确 - 在 output_shape 中传入一个明确的 batch_size?有没有办法省略显式 batch_size

最佳答案

请使用如下符号表示,而不是使用None

batch_size = tf.shape(something_or_other)[0]  
deconv_shape = tf.pack([batch_size, 40, 40, 32])
conv2d_transpose(..., output_shape=deconv_shape, ...)

注意不要使用 tf.get_shape()tf.get_shape()tf.shape() 略有不同。

另请参阅 tensorflow 站点中关于可变批量大小的建议。

https://www.tensorflow.org/programmers_guide/faq

关于python - Tensorflow:在 conv2D_transpose 的 output_shape 中使用 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40628929/

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