有的人将tensorflow的张量简单粗暴的理解为n维数据,从功能的角度上可以这么理解。但是张量实际上并不是n维数组,因为张量并没有真正保存数字,而是保存如何得到这些数据的计算过程。
import tensorflow as tf
a = tf.constant([1, 2], name = "a")
b = tf.constant([3, 2], name = "b")
result = a + b
print(result)
with tf.Session() as sess:
ret = sess.run(result)
print(ret)
result为一个张量,直接打印result得出的结果是:
Tensor("add:0", shape=(2,), dtype=int32)
从这个打印结果看,result并不是一个n维数组。
通过sess.run(result)之后,得到的结果是:
[4 4]
所以ret才是一个所谓的n维数组。
从Tensor("add:0", shape=(2,), dtype=int32)看,张量主要包含三个属性:
1、名字,即唯一标识符;
2、维度shape,该属性描述张量的维度信息,比如shape=(2,)表示的是一维数组;
3、类型dtype,每个张量有一个唯一的类型;