TensorFlow1

TensorFlow

Tensorflow是一個開源軟件庫,它使用數據流圖的形式進行數值計算。node

什麼是數據流圖(Data Flow Graph)

圖片描述

  • 節點(Nodes):表示數學運算操做符
  • 邊(Edges):用於傳送節點之間的多維數組,即張量。

安裝TensorFlow

  • CPU版本:pip install --upgrade tensorflow
  • GPU版本:pip install --upgrade tensorflow-gpu

檢查安裝以及版本

>>> import tensorflow as tf
>>> tf.__version__
'1.3.0'

利用TensorFlow打印‘Hello World!’

# 建立一個constant運算符(op)
# 這個op,做爲一個node,添加到graph中
hello = tf.constant('Hello, TensorFlow!')

# 啓動TF進程(session)
sess = tf.Session()

# 運行op,並輸出結果
print(sess.run(hello))
b'Hello, TensorFlow!'

b'String': 'b'表示字節符。數組

計算圖(Computational Graph)

圖片描述

# 1.使用TensorFlow運算符op搭建graph
node1 = tf.constant(3.0, tf.float32)
node2 = tf.constant(4.0)
node3 = tf.add(node1, node2)

# 2.丟入數據,並運行graph:sess.run(op)
# 3.自動更新graph中的變量並返回
sess = tf.Session()
print('sess.run(node1, node2):', sess.run([node1, node2]))
print('sess.run(node3):', sess.run(node3))
sess.run(node1, node2): [3.0, 4.0]
sess.run(node3): 7.0

TensorFlow運行機制

  • 1.使用TensorFlow運算符op搭建graph
  • 2.丟入數據,並運行graph:sess.run(op)
  • 3.自動更新graph中的變量並返回值

圖片描述

佔位符(Placeholder)

# 1.使用TensorFlow運算符op搭建graph
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = tf.add(a, b)

# 2.丟入數據,並運行graph:sess.run(op, feed_dict{x: x_data})
# 3.自動更新graph中的變量並返回值
print(sess.run(adder_node, feed_dict={a: 3, b: 4.5}))
print(sess.run(adder_node, feed_dict={a: [1, 3], b: [2, 4]}))
7.5
[3. 7.]

TensorFlow機制

  • 1.使用TensorFlow運算符op搭建graph
  • 2.丟入數據,並運行graph:sess.run(op, feed_dict{x: x_data})
  • 3.自動更新graph中的變量並返回值

圖片描述

萬物皆張量(Everything is Tensor)

Tensors

3    # rank爲0的張量,即shape爲[]的表量
[1., 2., 3.]    # rank爲1的張量;shape爲[3]的向量
[[1., 2., 3.], [4., 5., 6.]]    # rank爲2的張量;shape爲[2, 3]的矩陣
[[[1., 2., 3.]], [[7., 8., 9.]]]    # rank爲3的張量,形狀爲[2, 1, 3]

張量的階、形狀和類型

Tersor Ranks, Shapes, and Typessession

階(Ranks)

秩/階 數學名稱 Python實例
0 標量 s = 483
1 向量 v = [1., 2., 3.]
2 矩陣 m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
3 3-Tensor t = [[[2], [4], [6]], [[8], [10], [12]], [[14], [16], [18]]]
n n-Tensor ...

形狀(Shapes)

Rank Shape 維數 示例
0 [] 0-D 0維Tensor; 標量
1 [D0] 1-D 形狀爲[5]的1維張量
2 [D0, D1] 2-D 形狀爲[3, 4]的2維張量
3 [D0, D1, D2] 3-D 形狀爲[1, 4, 3]的3維張量
n [D0, D1, ..., Dn-1] n-D 形狀爲[D0, D1, ..., Dn-1]的n維張量

類型(Types)

數據類型 Python數據類型 描述
FLOAT tf.float32 32位浮點型
DOUBLE tf.float64 64位浮點型
INT8 tf.int8 有符號8位整型
INT16 tf.int16 有符號16位整型
INT32 tf.int32 有符號32位整型
INT64 tf.int64 有符號64位整型
相關文章
相關標籤/搜索