Python 当指定给变量时,张量的输出形状会发生变化

Python 当指定给变量时,张量的输出形状会发生变化,python,tensorflow,keras,conv-neural-network,Python,Tensorflow,Keras,Conv Neural Network,定义了一个模型,该模型输入形状(96,96,3)并输出形状(128),即为输入大小的给定图像提供128大小的嵌入。类似于facenet createmodel()是一个函数,它在构建完整模型后返回完整模型。由于模型期望以(批次大小,96,96,3)的形式输入,因此我传递3个图像,即(3,96,96,3),因此模型的输出将为形状(1,3128)。记住这一点,考虑如下: nn4_small2=createmodel() print(nn4_small2.outputs[0][2]) #prints

定义了一个模型,该模型输入形状(96,96,3)并输出形状(128),即为输入大小的给定图像提供128大小的嵌入。类似于facenet

createmodel()是一个函数,它在构建完整模型后返回完整模型。由于模型期望以(批次大小,96,96,3)的形式输入,因此我传递3个图像,即(3,96,96,3),因此模型的输出将为形状(1,3128)。记住这一点,考虑如下:

nn4_small2=createmodel()
print(nn4_small2.outputs[0][2])

#prints Tensor("strided_slice_11:0", shape=(128,), dtype=float32)

x=nn4_small2.outputs[0][2]
print(tf.shape(x))

#prints Tensor("Shape_6:0", shape=(1,), dtype=int32)
当分配给变量时,为什么输出张量的形状会改变

shape(input,name=None)返回表示输入形状的一维整数张量

使用x.get_shape()返回x变量的张量形状