Session

举两个例子。

Hello World

1
2
3
4
5
6
7
8
9
10
11
12
import tensorflow as tf

node = tf.constant("Hello, world!")

# method 1
sess = tf.Session()
print(sess.run(node))
sess.close

# method 2
with tf.Session() as tf:
print(sess.run(node))
D:\Anaconda3\Anaconda3_py36\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters


b'Hello, world!'
b'Hello, world!'

矩阵乘法

理解Session会话,并使用TensorFlow来解决买菜问题(矩阵乘法)。素材来自《如何让11岁表妹知道矩阵乘法的本质是什么?》.

假设买肉和菜,农贸市场一斤肉25元,一斤菜3元。
第一天我去农贸买了1斤肉,3斤菜,问计算用了多少钱:答:$25\times1+3\times3=34$。表示成向量乘法:

第二天,又去农贸市场买了2斤肉,1斤菜,则两天的花销可以表示为:

左边矩阵形状为1x2,行就表示农贸市场,两列分别表示肉的单价和菜的单价.右边矩阵,第一列表示第一天,第二列表示第二天,依次类推。第一行表示买的肉的数量,第二行表示买的菜的数量。两者进行矩阵相乘,得到的就是农贸市场,第n天,买肉和菜的总和。

听说王大妈哪里肉一斤20,菜一斤2元,假如这两天在王大妈哪里买菜,表示成矩阵:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import tensorflow as tf
import numpy as np
# 创建计算图

mat1 = tf.constant(np.array([[25, 3], [20, 2]]))
mat2 = tf.constant(np.array([[1, 2], [3, 1]]))
product = tf.matmul(mat1, mat2)

# 创建会话和运行
# method 1
sess = tf.Session()
money = sess.run(product)
print(money)
sess.close()

# method 2
with tf.Session() as sess:
money = sess.run(product)
print(money)
[[34 53]
 [26 42]]
[[34 53]
 [26 42]]