第三节 张量

# 张量(tensor)是对数组进行封装后的一种数据类型,三部分,名字,形状,数据类型
# 张量的阶对应着数组的维度
# 张量常用的数据类型:tf.float32,tf.int32,tf.string,tf.bool等
# 张量的属性:graph(张量所属的默认图),op(张量的操作名),name(张量的字符串描述),shape(张量的形状)
# 静态形状:创建一个张量,初始状态的形状,一旦张量形状固定了,不能再次设置静态形状
#     tf.Tensor.get_shape:获取静态形状
#     tf.Tensor.set_shape:更新Tensor对象的静态形状,通常用于在不能直接推断的情况下
# 动态形状:一种描述原始张量在执行过程中的一种形状(动态变化),可以去创建一个新的张量,改变的时候一定要注意元素数量的匹配
#     tf.reshape:创建一个具有不同动态形状的新张量
# 张量的动态形状和静态形状:在于有没有生成一个新的张量数据
import tensorflow as tf

plt = tf.placeholder(tf.float32, [None, 2])
print(plt)

plt.set_shape([2, 2, 4])  # 跨维度修改,报错

plt.set_shape([2, 2])  # 设置静态张量,一旦设定后不能再次修改
print(plt)

plt.set_shape([4, 2])  # 前面已设置,再设置报错

plt_reshape = tf.reshape(plt, [3, 2])  # 设置动态张量,等于新创建了一个张量,跟plt已经没有关系
print(plt_reshape)


plt_reshape = tf.reshape(plt, [4, 2]) # 重设动态张量,这时要注意数据要匹配

with tf.Session() as sess:
    pass

猜你喜欢

转载自www.cnblogs.com/kogmaw/p/12597753.html