Tensorflow,获取张量的静态形状

Tensorflow,获取张量的静态形状,tensorflow,keras,Tensorflow,Keras,我正在尝试使用其他神经网络的输出,问题是,我需要得到真实的形状而不是尺寸,你能告诉我怎么做吗?unet_model.summary()显示了真实的形状,但当我尝试获取输出张量时,它的形状是无 unet_model = Unet(input_shape=(256,256,3),backbone_name='resnet50',encoder_weights='imagenet', decoder_block_type='transpose') f_i = Input(shape=(256,256

我正在尝试使用其他神经网络的输出,问题是,我需要得到真实的形状而不是尺寸,你能告诉我怎么做吗?unet_model.summary()显示了真实的形状,但当我尝试获取输出张量时,它的形状是无

unet_model =  Unet(input_shape=(256,256,3),backbone_name='resnet50',encoder_weights='imagenet', decoder_block_type='transpose')
f_i = Input(shape=(256,256,3))

#unet_model.summary()
....
乙状结肠(激活)(无、256、256、1)0最终确认[0][0]
#unet_模型调用(f_i)
#unet_模型。层[-1]。输出
我希望收到的张量的形状=(无,256,256,1)


我使用tensorflow==1.14.0,keras==2.3.1

您可以使用下面的线条获得模型的层形状

for layer in unet_model.layers:
    print(layer.output_shape)

谢谢,出于某种原因,
unet\u model.layers[-1]。output.shape
unet\u model.layers[-1]。output\u shape
给出不同的结果,您的答案解决了我的问题,谢谢
unet_model.layers[-1].output
# unet_model.summary()
....
sigmoid (Activation)            (None, 256, 256, 1)  0           final_conv[0][0]    

# unet_model.call(f_i)
<tf.Tensor 'sigmoid_5/Sigmoid:0' shape=(?, ?, ?, 1) dtype=float32>

# unet_model.layers[-1].output   
<tf.Tensor 'sigmoid_5/Sigmoid:0' shape=(?, ?, ?, 1) dtype=float32>

for layer in unet_model.layers:
    print(layer.output_shape)