TF01-01:Tensorflow的執(zhí)行方式

本主題內容:體驗Tensorflow的兩種執(zhí)行方式:

  1. TensorflowEager(立即)運行方式
  2. TensorflowGraphs(圖)運行方式
  • Tensorflow提供兩種數(shù)據(jù)處理方式
    • Eager
      TensorFlow 的Eager執(zhí)行是傳統(tǒng)的編程方式抓督,直接對實際的數(shù)據(jù)立即執(zhí)行運算匪傍,操作會返回具體的值;
    • Graphs
      TensorFlow 的Graphs執(zhí)行是類似泛型模板編程方式疗涉,先對數(shù)據(jù)與計算過程進行模板描述裸诽,然后對具體的數(shù)據(jù)進行實例化執(zhí)行验烧,并獲取結果的方式怜跑。
      Graphs的核心是構建圖,圖的主要元素是節(jié)點锥腻,Graphs中關鍵節(jié)點有兩個:數(shù)據(jù)節(jié)點,運算節(jié)點母谎。數(shù)據(jù)輸入瘦黑、處理、輸出構成節(jié)點這幾件的運算與數(shù)據(jù)流流[1]奇唤,借用官方的一張示意圖可以說明計算節(jié)點幸斥、數(shù)據(jù)節(jié)點與圖
      圖表示的數(shù)據(jù)處理流
  • Tensorflow引入了一些符號來表示,截圖說明如下:

    圖的表述符號(有箭頭的表示核心節(jié)點與節(jié)點關系)

  • 準備

      1. 安裝Tensorflow
    pip  install tensorflow   -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
    

    這是使用的是速度比較快的鏡像站點咬扇,可以使用默認的官方站點甲葬。

      1. 在python程序中import模塊
    import tensorflow as tf  
    
      1. 例子的計算任務描述
        計算兩個隨機矩陣的內積(A_{4\times3}\cdot B_{3\times2})。

一懈贺、體驗Eager執(zhí)行方式

1经窖、啟動Eager執(zhí)行模式

  • 啟動eager執(zhí)行環(huán)境,并檢測是否是eager執(zhí)行環(huán)境梭灿,如果不是eager執(zhí)行環(huán)境画侣,則終止程序退出。
     import sys
     import numpy as np
     import tensorflow as tf
     
     #1.開啟eager執(zhí)行方式
     tf.enable_eager_execution()
     
     #2.判定當前是否是eager執(zhí)行方式
     if tf.executing_eagerly():
         print("Eager執(zhí)行方式")
     else:
         print("Graphs執(zhí)行方式")
         sys.exit(-1)
    

2堡妒、Eager執(zhí)行代碼

  • 在計算中使用了兩個numpy數(shù)組(矩陣)配乱,運算調用的是tensorflow的內積計算函數(shù)matmul
      #實現(xiàn)eager執(zhí)行方式
      m1=np.random.uniform(0,1,(4,3))
      m2=np.random.uniform(0,1,(3,2))
      
      r=tf.matmul(m1,m2)
      
      print(r)
    
  • 程序輸出如下:
    Eager執(zhí)行模式下的輸出結果
  • 如果把eager模式代碼注釋掉,則運行結果如下:
    Grahps執(zhí)行方式下的輸出結果

??在Graphs執(zhí)行方式下搬泥,該怎樣才能得到結果桑寨?下面使用來說明。

二忿檩、體驗Graphs執(zhí)行方式

  • Graphs執(zhí)行模式是別人設計好的西疤,使用的時候需要按照設計來使用,用好Graphs就多看官方文檔休溶。
  • 使用Graphs執(zhí)行方式最大的好處代赁,只要描述清楚數(shù)據(jù)與運算流程,細節(jié)都由API來執(zhí)行(比如在Graphs模式下兽掰,感知器的訓練中的激活函數(shù)與損失誤差函數(shù)的導數(shù)都會交給API自動完成)芭碍。Eager傳統(tǒng)模式,則需要關注所有細節(jié)(在Eager模式下孽尽,感知器的訓練中窖壕,激活函數(shù)與誤差損失函數(shù)都需要程序員處理)。

1.Graphs執(zhí)行方式的模式

  • Graphs編程模式分成兩步:
    • (1)描述數(shù)據(jù)杉女、運算以及運算流程瞻讽。
    • (2)構建運行會話環(huán)境,執(zhí)行運算熏挎。

2.Graphs代碼實現(xiàn)

  • 描述數(shù)據(jù)速勇,運算與運算流程
    這里沒有復雜的運算流程(通過函數(shù)的輸入,輸出形成數(shù)據(jù)與運算流程)坎拐,可能不足以提現(xiàn)Graphs執(zhí)行方式的強大烦磁。

      #1.描述圖:數(shù)據(jù)節(jié)點,運行節(jié)點
      #數(shù)據(jù)節(jié)點
      m1=np.random.uniform(0,1,(4,3))
      #數(shù)據(jù)節(jié)點
      m2=np.random.uniform(0,1,(3,2))
      #運算節(jié)點(r也算數(shù)據(jù)節(jié)點哼勇,通過matmul建立與m1都伪、m2的數(shù)據(jù)與運算流 )
      r=tf.matmul(m1,m2)
    
  • 構建會話環(huán)境,執(zhí)行運算

      #2.構建會話執(zhí)行環(huán)境积担,并執(zhí)行圖陨晶。
      #構建會話對象
      session=tf.Session()
      #使用會話初始化變量環(huán)境
      init_op= tf.global_variables_initializer()  #構建一個初始化器
      session.run(init_op)                        #執(zhí)行初始化器,并完成全局變量初始化
    
      #執(zhí)行運算
      re=session.run(r)                           #返回結果
      print(re)
    
  • 完整代碼

      #coding=utf-8
      import numpy as np
      import tensorflow as tf
    
      #1.描述圖:數(shù)據(jù)節(jié)點帝璧,運行節(jié)點
      #數(shù)據(jù)節(jié)點
      m1=np.random.uniform(0,1,(4,3))
      #數(shù)據(jù)節(jié)點
      m2=np.random.uniform(0,1,(3,2))
      #運算節(jié)點(r也算數(shù)據(jù)節(jié)點先誉,通過matmul建立與m1、m2的數(shù)據(jù)與運算流 )
      r=tf.matmul(m1,m2)
    
    
      #2.構建會話執(zhí)行環(huán)境聋溜,并執(zhí)行圖谆膳。
      #構建會話對象
      session=tf.Session()
      #使用會話初始化變量環(huán)境
      init_op= tf.global_variables_initializer()  #構建一個初始化器
      session.run(init_op)                        #執(zhí)行初始化器,并完成全局變量初始化
    
      #執(zhí)行運算
      re=session.run(r)                           #返回結果
      print(re)
    
  • 執(zhí)行結果

    Graphs執(zhí)行方式下執(zhí)行結果
【資源】

相關代碼:

  1. t01_eager.py(體驗eager執(zhí)行方式)
  2. t01_graphs.py(體驗graphs執(zhí)行方式)
    下載:【 代碼(github)

  1. [數(shù)據(jù)流]:是一種用于并行計算的常用編程模型撮躁。在數(shù)據(jù)流圖中漱病,節(jié)點表示計算單元(橢圓表示)與計算使用或產生的數(shù)據(jù)(矩形表示)买雾。 ?

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市杨帽,隨后出現(xiàn)的幾起案子漓穿,更是在濱河造成了極大的恐慌,老刑警劉巖注盈,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晃危,死亡現(xiàn)場離奇詭異,居然都是意外死亡老客,警方通過查閱死者的電腦和手機僚饭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胧砰,“玉大人鳍鸵,你說我怎么就攤上這事∥炯洌” “怎么了偿乖?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哲嘲。 經常有香客問我贪薪,道長,這世上最難降的妖魔是什么眠副? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任画切,我火速辦了婚禮,結果婚禮上侦啸,老公的妹妹穿的比我還像新娘槽唾。我一直安慰自己,他們只是感情好光涂,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拧烦,像睡著了一般忘闻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恋博,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天齐佳,我揣著相機與錄音,去河邊找鬼债沮。 笑死炼吴,一個胖子當著我的面吹牛,可吹牛的內容都是我干的疫衩。 我是一名探鬼主播硅蹦,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了童芹?” 一聲冷哼從身側響起涮瞻,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎假褪,沒想到半個月后署咽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡生音,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年宁否,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缀遍。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡慕匠,死狀恐怖,靈堂內的尸體忽然破棺而出瑟由,到底是詐尸還是另有隱情絮重,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布歹苦,位于F島的核電站青伤,受9級特大地震影響,放射性物質發(fā)生泄漏殴瘦。R本人自食惡果不足惜狠角,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚪腋。 院中可真熱鬧丰歌,春花似錦、人聲如沸屉凯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悠砚。三九已至晓勇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灌旧,已是汗流浹背绑咱。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留枢泰,地道東北人描融。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像衡蚂,于是被迫代替她去往敵國和親窿克。 傳聞我的和親對象是個殘疾皇子骏庸,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內容

  • 簡單線性回歸 import tensorflow as tf import numpy # 創(chuàng)造數(shù)據(jù) x_dat...
    CAICAI0閱讀 3,547評論 0 49
  • 待歲月的浮塵都被過濾,就把每一天都當做是吉日良辰让歼,把每個人都當做是生命里的初見敞恋,把每朵花都喚做姹紫嫣紅。 ...
    弱水_6071閱讀 373評論 0 1
  • 斯佳逃婚了谋右。 當然不是像電視劇里硬猫,婚禮當天穿著婚紗逃出酒店那種。斯佳清楚地記得發(fā)生變故的那天改执,是跟袁方琪去婚姻登記...
    花蚊閱讀 438評論 0 2
  • 紅色 啸蜜,興奮、熱情辈挂,使人追求到極致衬横,黃色,明耀终蒂、奇特蜂林,使人追逐向往;綠色蓬勃拇泣、向上噪叙,使人靜似處子般凝望;但我還是喜...
    指針指向你心臟閱讀 947評論 0 1