对于任何一门编程语言,首先学习的都是定义变量常量,虽然接下来要讲的是Python TensorFlow,但是TensorFlow是不可以直接使用Python中定义的普通变量或常量的,TensorFlow要使用TensorFlow张量。
一、TensorFlow张量运算
TensorFlow中定义张量:
a = tf.constant([1.0, 2.0])
b = tf.constant([3.0, 4.0])
这样就定义了两个张量,维度是(2, ),接着令他们两个相加:
c = a + b
print(c)
如果是numpy,得到的结果一定是(4, 6)
而TensorFlow输出的结果是:
这里Tensor("add:0", shape=(2,), dtype=float32)中
add表示节点名,0表示第0个输出,shape表示维度,2表示一维数组长度2,dtype表示数据类型。
上面实现了一次TensorFlow加法运算,TensorFlow还有乘法:
x = tf.constant([[1.0, 2.0]]) #张量
w = tf.constant([[3.0], [4.0]])
result = tf.matmul(x, w)
print(result)
二、TensorFlow会话
上面学习了加法和乘法,但是输出的结果都是Tensor形式的,如何转换成可以看到的数字呢?
TensorFlow为了加快效率,底层计算写到了C语言的运行库中,它和Python链接的方式就是通过会话。所以上述代码虽然写了计算,但实际上尚未执行运算,在这里就需要通过会话进行运算。
sess = tf.Session()
这句话就定义了一个会话,接着使用sess.run(result)计算result:
可以看到,TensorFlow中张量相加得到了和numpy一样的结果。