tensorflow的計算圖總結

 更新時間:2020-01-12 19:00:27   作者:佚名   我要評論(0)

計算圖


在 TensorFlow 中用計算圖來表示計算任務。 計算圖,是一種有向圖,用來定義計算的結構,實際上就是一系列的函數的組合。 用圖的方式,用戶通過用一些簡單

計算圖

在 TensorFlow 中用計算圖來表示計算任務。 計算圖,是一種有向圖,用來定義計算的結構,實際上就是一系列的函數的組合。 用圖的方式,用戶通過用一些簡單的容易理解的數學函數組件,就可以建立一個復雜的運算

在 TensorFlow 使用圖,分為兩步:建立計算圖 和 執行圖

圖,在形式上由結點 Nodes 和邊 Edges 組成。 - Nodes,用圓圈表示,代表一些對數據進行的計算或者操作(Operation)。 - Edges,用箭頭表示,是操作之間傳遞的實際值(Tensor)

建立圖

graph = tf.Graph()

訪問上下文管理器

with graph.as_default(): 

用 with 表示我們用 context manager 告訴 TensorFlow 我們要向某個具體的 graph 添加 Op 了

執行圖圖必須在會話(Session)里被啟動,會話(Session)將圖的 op 分發到 CPU 或 GPU 之類的設備上,同時提供執行 op 的方法,這些方法執行后,將產生的張量(tensor)返回

## 開啟session

sess = tf.Session()`

一旦開啟了 Session,就可以用 run() 來計算想要的 Tensor 的值

用完會話,記得關掉

sess.close()

Fetches

fetches是session.run()的一個參數,它可以接收任何一個我們想要執行的op或者Tensor,或者他們對應的list結構。

  • 如果是tensor,那么session.run()輸出的就是一個Numpy 數組
  • 如果是Op,那么session.run()輸出的就是None

比如:sess.run(b)就是告訴Session要把計算b所需要的結點都找到按順序執行并且輸出結果。

全局變量初始化

tf.global_variables_initializer()

表示將所有定義的Variable變量都準備好,以便于后續使用,這個Op也可以傳給給session.run.比如:

init = tf.global_variables_initializer()
…
sess.run(init)

張量Tensor和OP

在tensorflow中使用tensor來表示所有的數據結構,計算圖中操作Op結點之間傳遞的都是Tensor

  • 定義tensor時可以直接使用numpy傳遞給Op結點,因為tensorflow的Op可以將python的數據類型轉化為tensor包括numbers,booleans,strings或者list。
  • 圖中的任何結點都叫做Operation簡稱:Op
  • 每個Op的輸出會被傳遞到其他Op或者sess.run()

Variable

Variable,變量是維護圖執行過程中的狀態信息的,需要它來保持和更新參數數值,是需要動態調整的。

  • Tensor 和Operation都是一成不變的,而Variable是可以隨著時間改變的
  • Variables可以用在任何使用tensor的Op中,它當前的值就會被傳遞給使用它的Op
  • Variable通常的初始值是一些很大的0,1或者隨機值tensor,或者內置op:tf.zeros(),tf.ones()等
  • Variable在graph中,狀態由session管理,也是在session中進行初始化,session可以追蹤variable的當前值是多少。
  • session可以只初始化一部分variable
  • 使用tf.variables_initializer,傳入初始化變量列表
  • variable的值是可以被改變的
  • 比如使用variable.assign(variable),或者variable.assign_add(1)
  • 每個session維護獨立的variable變量值,同一個variable不同的session值可以是不同的。
  • 當各種Optimizer優化器訓練機器學習模型時,variable就會隨之改變,當使用variable中的trainable=False屬性可以不被Optimizer改變。

name_scopes

  • name_sopes可以用來管理圖,可以把一組Op放到一個組塊中

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

  • 初探TensorFLow從文件讀取圖片的四種方式
  • python使用TensorFlow進行圖像處理的方法
  • python tensorflow學習之識別單張圖片的實現的示例
  • Python3.7安裝keras和TensorFlow的教程圖解
  • python3讀取圖片并灰度化圖片的四種方法(OpenCV、PIL.Image、TensorFlow方法)總結
  • Tensorflow之構建自己的圖片數據集TFrecords的方法
  • tensorflow實現對圖片的讀取的示例代碼
  • tensorflow實現圖像的裁剪和填充方法
  • Tensorflow模型實現預測或識別單張圖片
  • tensorflow如何批量讀取圖片
  • 詳解如何用TensorFlow訓練和識別/分類自定義圖片

相關文章

  • tensorflow的計算圖總結

    tensorflow的計算圖總結

    計算圖 在 TensorFlow 中用計算圖來表示計算任務。 計算圖,是一種有向圖,用來定義計算的結構,實際上就是一系列的函數的組合。 用圖的方式,用戶通過用一些簡單
    2020-01-12
  • Python3.x+迅雷x 自動下載高分電影的實現方法

    Python3.x+迅雷x 自動下載高分電影的實現方法

    快要過年了,大家都在忙些什么呢?一到年底公司各種搶票,備年貨,被這過年的氣氛一烘,都歸心似箭,哪還有心思上班啊。歸心似箭=產出低下=一行代碼十個錯=無聊。于
    2020-01-12
  • 在微信小程序中渲染HTML內容3種解決方案及分析與問題解決

    在微信小程序中渲染HTML內容3種解決方案及分析與問題解決

    大部分Web應用的富文本內容都是以HTML字符串的形式存儲的,通過HTML文檔去展示HTML內容自然沒有問題。但是,在微信小程序(下文簡稱為「小程序」)中,應當如何渲
    2020-01-12
  • ES2020 新特性(種草)

    ES2020 新特性(種草)

    這幾年,Ecma TC39一年一次更新 ecmascript 規范標準,截止目前,以下特性已進入 finished 狀態,F在帶大家體驗種草 ES2020 新特性。 一:Promise.allSettled
    2020-01-12
  • Python 實現遞歸法解決迷宮問題的示例代碼

    Python 實現遞歸法解決迷宮問題的示例代碼

    迷宮問題 問題描述: 迷宮可用方陣 [m, n] 表示,0 表示可通過,1 表示不能通過。若要求左上角 (0, 0) 進入,設計算法尋求一條能從右下角 (m-1, n-1) 出去的路徑。
    2020-01-12
  • html2canvas屬性和使用方法以及如何使用html2canvas將HTML內容寫入Canvas生成圖片

    html2canvas屬性和使用方法以及如何使用html2canvas將HTML內容寫入Canvas生成圖片

    如何使用JS截取HTML頁面為圖片呢,下面為大家介紹一款JS截圖插件html2canvas.js html2canvas.js 能夠實現在用戶瀏覽器端直接對整個或部分頁面進行截屏。 html2can
    2020-01-12
  • golang并發編程的實現

    golang并發編程的實現

    go main函數的執行本身就是一個協程,當使用go關鍵字的時候,就會創建一個新的協程 channel channel 管道,用于在多個協程之間傳遞信號 無緩存管道 當對無
    2020-01-12
  • python opencv實現信用卡的數字識別

    python opencv實現信用卡的數字識別

    本項目利用python以及opencv實現信用卡的數字識別 前期準備 導入工具包 定義功能函數 模板圖像處理 讀取模板圖像 cv2.imread(img) 灰度化處理 cv2
    2020-01-12
  • 2019年度web前端面試題總結(主要為Vue面試題)

    2019年度web前端面試題總結(主要為Vue面試題)

    畢業之后就在一直合肥小公司工作,沒有老司機、沒有技術氛圍,在技術的道路上我只能獨自摸索。老板也只會畫餅充饑,前途一片迷?床坏饺魏蜗M。于是乎,我果斷辭
    2020-01-12
  • 深入理解redux之compose的具體應用

    深入理解redux之compose的具體應用

    應用 最近給自己的react項目添加redux的時候,用到了redux中的compose函數,使用compose來增強store,下面是我在項目中的一個應用: import {createStore,apply
    2020-01-12

最新評論

北京pk10直播盛源