我正在使用tensorflow实现U-NET(deconv net)。
问题源于我的输入占位符具有无类型维度。 x = tf.placeholder(tf.float32,[None,None,None,1])
卷积很好,但是在执行反卷积时会发生错误。
以下是我收到错误的代码部分:
output_shape = list(input_shape)
output_shape[1] *= stride
output_shape[2] *= stride
output_shape[3] = output_channels
deconv = tf.nn.conv2d_transpose(input_tensor, kernel, output_shape, [1, stride, stride, 1], padding='SAME')
我在'output_shape [1] * = stride'时收到错误,所以我决定不学习上采样滤波器,而是使用双线性插值
tf.image.resize_images(dw_h_convs[4], [dw_h_convs[4].get_shape().as_list()[1] * 2, dw_h_convs[4].get_shape().as_list()[2] * 2])
但同样,我收到如下错误消息:TypeError:*支持的操作数类型*:'NoneType'和'int'
显然,似乎无类型不能乘以常数。
有什么方法可以绕过这个问题并使用动态图像宽度和高度来运行deconv net吗?
感谢。