TypeError:输入' input_sizes' ' Conv3DBackpropInputV2' Op的类型为int64,与int32的预期类型不匹配

时间:2018-04-26 04:57:04

标签: tensorflow

deconv_shape1 = layer3.get_shape()
de_W1 = tf.Variable(tf.truncated_normal(shape=(4, 4, 4, 
deconv_shape1[4].value, 2), mean = mu, stddev = sigma))
de_b1 = tf.Variable(tf.zeros(deconv_shape1[4].value))
output_shape=x.get_shape().as_list()
output_shape[1] *= 2
output_shape[2] *= 2
output_shape[3] *= 2 
output_shape[4] = deconv_shape1[4].value
output_shape=np.asarray(output_shape)
output_shape=tfConv3DBackpropInputV2.convert_to_tensor(output_shape)
print(type(output_shape))
x = tf.nn.conv3d_transpose(x, de_W1, output_shape, strides=[1, 2, 2, 2, 1], padding="SAME")
x = tf.nn.bias_add(x,de_b1)
first_down_layer=x

x的类型为int32。

我得到了tensorflow中提到的错误。我做错了什么,因为我甚至没有打电话给Conv3DBackpropInputV2()

我是tensorflow的新手,请帮助!!

1 个答案:

答案 0 :(得分:0)

作为前缀,为什么不使用现成的conv3d_transpose图层tf.layers.conv3d_transpose(),为什么要尝试将所有这些移动部件放在一起呢?但是,嘿,也许你有充分的理由。所以:

output_shape的类型为int64。运行以下代码:

import tensorflow as tf
import numpy as np

a = tf.zeros( ( 5, 5, 5, 5, 5 ) )
b = a.get_shape().as_list()
c = np.asarray( b )
print( c.dtype )

将输出

  

的int64

转换为数组时这样做:

output_shape = np.asarray( output_shape, dtype = np.int32 )

那应该解决它。