创建Tensor
从numpy, list数据中获得
创建一个Tensor数据可以从list或者numpy矩阵中获得。不过在list中,每个数据的类型可能不一致,而转化为Tensor要求数据类型应该是一致的,不过这种一致并非十分严格,也可以说逻辑上可以的数据便可以转化为Tensor,例如list数组中可能同时存在int类型和float类型,转化为Tensor时数据会自动扩充为float类型。
tf.convert_to_tensor(np.ones([2, 3]))
tf.convert_to_tensor([1., 2])
Out[ ]: <tf.Tensor: id=6, shape=(2,), dtype=float32, numpy=array([1., 2.], dtype=float32)>
常用的新建Tensor
新建Tensor类似与numpy中的方式,包括tf.ones(shape), tf.zeros(shape), tf.fill(shape,value)。 即充填为1,0,value值。创建Tensor时,若没有给出shape数据,则表示创建一个标量(数值)。这种新建方式存在缺点:只能创建同样数值的数据。
# 创建 3 * 2 的全一矩阵
a = tf.ones([3 , 2])
# 创建 3 * 2 的全零矩阵
a = tf.zeros([3, 2])
# 创建 2 * 3 的矩阵,数据都为5.0
tf.fill([2, 3], 5.)
Out[ ]: <tf.Tensor: id=33, shape=(2, 3)