张量(Tensor)是一个很重要的概念。在TensorFlow中所有的数据都用张量来表示,当然张量可以被简单得理解为多维数组。
其中零阶张量表示标量(scalar),一阶张量表示向量(vector),n阶张量就是n阶数组。但是张量在TensorFlow中的实现并不想Numpy那样是数组的形式,而只是运算结果的引用,即是一种计算过程。
下面是一个实例:
1 2 3 4 5 6 7 8 9 |
import tensorflow as tf a = tf.constant([1.0, 2.0], name="a") b = tf.constant([2.0, 3.0], name="b") result = tf.add(a, b, name="add") print(result) # Tensor("add:0", shape=(2,), dtype=float32) with tf.Session() as sess: print(sess.run(result) |
计算结果:
Tensor("add:0", shape=(2,), dtype=float32)
[3. 5.]
可以看到其计算结果是一个结构
add代表的是名称(节点名称),0代表是来自节点的第几个输出
shape是数组的结构,是一个一维数组,它的长度为2
dtype是数据类型,注意要是a和b的类型不匹配此代码将无法执行
当然result只是定义了这样一个运算,实际上没有执行,需要session来run才能看到最终结果。