TesnsorFlow簡介

一. Tensorflow中的基本概念

【1】Graph(圖)來表示計算任務
【2】Session(會話)執(zhí)行Graph
【3】Tensor表示數(shù)據(jù)
【4】Variable維護狀態(tài)
【5】FeedFetch為任意的操作賦值或者從中獲取數(shù)據(jù)
【6】Tensor(張量)是某一類型的多維數(shù)組
【7】OP節(jié)點操作

二. Tensorflow的計算圖

TensorFlow是基于計算流圖的,其命名來源于自身的運行原理。Tensorflow使用圖來表示計算任務,如下圖所示:

圖中的節(jié)點被稱為op(operation)。一個op獲得0個或多個tensor。op執(zhí)行計算,產(chǎn)生0個或多個tensor。TensorFlow的一個Graph描述(定義)了計算的過程,圖只有在Session中啟動,才能使op返回具體的tensor。
所以Tensorflow的程序通常分為構建階段執(zhí)行階段。執(zhí)行的過程就是tensor在計算圖中的flow,所以稱之為Tensorflow。

# -*- coding: UTF-8 -*-
import tensorflow as tf
# 創(chuàng)建常量op
a = tf.constant([1, 2, 3])
b = tf.constant([4, 5 ,6])
# 創(chuàng)建add的op
c = tf.add(a, b)
print('c before:', c)
# 建立session,用with即用python中的上下文管理器管理這個session,當上下文管理器退出時,會釋放資源,結束session
with tf.Session() as sess:
    print(sess.run(c))

輸出的結果為:

('c before:', <tf.Tensor 'Add:0' shape=(3,) dtype=int32>)
[5 7 9]

通過session,數(shù)據(jù)才能在計算圖中流動起來,這時候可以得到具體的數(shù)值。

(1) Fetch

取回操作是使用Session對象的run()調(diào)用執(zhí)行圖時,傳入tensor,這些tensor會幫助我們?nèi)』亟Y果。
上面的例子我們只取回了一個tensor,也可以取回多個tensor

# -*- coding: UTF-8 -*-

import tensorflow as tf
# 創(chuàng)建常量op
a = tf.constant([1, 2, 3])
b = tf.constant([4, 5 ,6])
# 創(chuàng)建add的op
c = tf.add(a, b)
d = a+c
print('c before:', c)
# 建立session,用with即用python中的上下文管理器管理這個session,當上下文管理器退出時,會釋放資源,結束session
with tf.Session() as sess:
    print(sess.run([c, d]))

(2) Feed

feed可以理解為一個占位符,當運行的時候可以臨時代替計算圖中任意操作中的tensor。

# -*- coding: UTF-8 -*-

import tensorflow as tf
# 創(chuàng)建常量op
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
# 創(chuàng)建add的op
c = tf.add(a, b)

# 建立session,用with即用python中的上下文管理器管理這個session,當上下文管理器退出時,會釋放資源,結束session
with tf.Session() as sess:
    print(sess.run(c, feed_dict={a: [1.], b: [2.]}))

這里的placeholder就是占位符,在run的時候feed具體的數(shù)值。

Tensorflow的發(fā)展背景及運行機制

這里可以參見背景&&運行機制

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容