代码:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
tensor1 = tf.constant(4.0)
tensor2 = tf.constant([1, 2, 3, 4])
linear_squares = tf.constant([[4], [9], [16], [25]], dtype=tf.int32)
print("tensor1:\n", tensor1)
print("tensor2:\n", tensor2)
print("linear_squares_before:\n", linear_squares)
结果:
tensor1:
Tensor("Const:0", shape=(), dtype=float32)
tensor2:一维
Tensor("Const_1:0", shape=(4,), dtype=int32)
linear_squares_before:4行1列
Tensor("Const_2:0", shape=(4, 1), dtype=int32)
默认类型:浮点32位
在交互式里面运行:shape随意设置
创建随机张量:
代码
mean均值,stddev标准差
张量的变换
tf.cast可以转换为任何类型
linear_squares = tf.constant([[4], [9], [16], [25]], dtype=tf.int32)
tf.cast(linear_squares,dtype = tf.float32)
不会改变原始的tensor,只会返回新的改变后的tensor
静态形状 - 初始创建张量时的形状
1)如何改变静态形状
什么情况下才可以改变/更新静态形状?
只有在形状没有完全固定下来的情况下
tensor.set_shape(shape)
直接对原来的tensor改变
什么情况是形状没完全固定呢?
这种用带问号的就是没固定的
更新:填充问号部分
存在的部分不能改变
2)如何改变动态形状
tf.reshape(tensor, shape)
英文是引用的tf的函数,所以不会改变原始的tensor
返回新的改变形状后的tensor
动态创建新张量时,张量的元素个数必须匹配
意思就是[n,m]改为[a,b,c]
nm = ab*c