我只是想使用命令'tf.shape()'获得张量的静态形状。我注意到我们可以使用'x.get_shape'获得静态形状,但是,在我的代码中,用于训练的形状是静态的,用于评估,张量的形状是动态的'None'-因此我不确定如果我也可以通过使用'tf.shape()'获得静态形状。
'deconv4.outputs'的形状为[16,256,256,3],但是,当我使用'tf.shape(deconv4.outputs)[0]'时,结果为:'Tensor(“ FRUC_DVF_g / strided_slice_2:0 “,shape =(),dtype = int32,device = / device:GPU:0)”,而不是“ 16”。
您能帮我吗?
谢谢!
我得到了名为[deconv4.outputs]的模型,其输出形状为[16,256,256,3]。我想使用“ tf.shape()”命令获取“ deconv4.outputs”的第一维。
flow = tf.slice(deconv4.outputs, [0,0,0,0], [tf.shape(deconv4.outputs)[0], 256, 256, 2])
预期结果是'tf.shape(deconv4.outputs)[0]'返回'16'。
答案 0 :(得分:0)
tf.shape()在带有适当输入的会话下运行时应返回16。
任何动态内容,如果您在输入中指定无,而没有在会话中运行它,则会得到()。
尝试使用启用eager_execution_的代码。