import tensorflow as tf
# 形状的概念
# 静态形状和动态形状
# 对于静态形状来说,一旦张量形状固定了,不能再次设置静态形状,也能跨维度修改
# 动态形状可以去创建一个新的张量,改变时候一定要注意元素数量要匹配,而且可以跨维度修改
plt = tf.placeholder(tf.float32 ,[None,2])
print("设置之前:",plt)
# 2不能变,必须和一开始一样,否则会报ValueError: Dimension 1 in both shapes must be equal, but are 2 and 7. Shapes are [?,2] and [3,7].
plt.set_shape([3,2])
print("设置之后:",plt)
# plt.set_shape([2,3]) # 不能再次修改了,会报错
# 动态形状修改,会生成一个新的Tensor,但是不能从[2,3] 变为 [3,3] 不能多出列,只能改变形状而已
plt_reshape = tf.reshape(plt , [2,3,1]) # ValueError: Cannot reshape a tensor with 6 elements to shape [3,3] (9 elements) for 'Reshape' (op: 'Reshape') with input shapes: [3,2], [2] and with input tensors computed as partial shapes: input[1] = [3,3].
print("动态改变形状:", plt_reshape)
with tf.Session() as sess:
pass