1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          autograph(Autograph的機制的原理是什么)

          來源:互聯網轉載 時間:2024-05-13 14:41:42


          一,Autograph的機制原理

          當我們使用@tf.function裝飾一個函數的時候,后面到底發生了什么呢?

          例如我們寫下如下代碼。

          后面什么都沒有發生。僅僅是在Python堆棧中記錄了這樣一個函數的簽名。

          當我們第一次調用這個被@tf.function裝飾的函數時,后面到底發生了什么?

          例如我們寫下如下代碼。

          發生了2件事情。

          第一件事情是創建計算圖。

          即創建一個靜態計算圖,跟蹤執行一遍函數體中的Python代碼,確定各個變量的Tensor類型,并根據執行順序將算子添加到計算圖中。

          在這個過程中,如果開啟了autograph=True(默認開啟),會將Python控制流轉換成TensorFlow圖內控制流。

          主要是將if語句轉換成 tf.cond算子表達,將while和for循環語句轉換成tf.while_loop算子表達,并在必要的時候添加tf.control_dependencies指定執行順序依賴關系。

          相當于在 tensorflow1.0執行了類似下面的語句。

          第二件事情是執行計算圖。

          相當于在 tensorflow1.0中執行了下面的語句:

          因此我們先看到的是第一個步驟的結果:即Python調用標準輸出流打印"tracing"語句。

          然后看到第二個步驟的結果:TensorFlow調用標準輸出流打印1,2,3。

          當我們再次用相同的輸入參數類型調用這個被@tf.function裝飾的函數時,后面到底發生了什么?

          例如我們寫下如下代碼。

          只會發生一件事情,那就是上面步驟的第二步,執行計算圖。

          所以這一次我們沒有看到打印"tracing"的結果。

          當我們再次用不同的的輸入參數類型調用這個被@tf.function裝飾的函數時,后面到底發生了什么?

          例如我們寫下如下代碼。

          由于輸入參數的類型已經發生變化,已經創建的計算圖不能夠再次使用。

          需要重新做2件事情:創建新的計算圖、執行計算圖。

          所以我們又會先看到的是第一個步驟的結果:即Python調用標準輸出流打印"tracing"語句。

          然后再看到第二個步驟的結果:TensorFlow調用標準輸出流打印1,2,3。

          需要注意的是,如果調用被@tf.function裝飾的函數時輸入的參數不是Tensor類型,則每次都會重新創建計算圖。

          例如我們寫下如下代碼。兩次都會重新創建計算圖。因此,一般建議調用@tf.function時應傳入Tensor類型。

          二,重新理解Autograph編碼規范

          了解了以上Autograph的機制原理,我們也就能夠理解Autograph編碼規范的3條建議了。

          1,被@tf.function修飾的函數應盡量使用TensorFlow中的函數而不是Python中的其他函數。

          解釋:Python中的函數僅僅會在跟蹤執行函數以創建靜態圖的階段使用,普通Python函數是無法嵌入到靜態計算圖中的,所以在計算圖構建好之后再次調用的時候,這些Python函數并沒有被計算,而TensorFlow中的函數則可以嵌入到計算圖中。使用普通的Python函數會導致被@tf.function修飾前【eager執行】和被@tf.function修飾后【靜態圖執行】的輸出不一致。

          2,避免在@tf.function修飾的函數內部定義tf.Variable。

          解釋:如果函數內部定義了tf.Variable,那么在【eager執行】時,這種創建tf.Variable的行為在每次函數調用時候都會發生。但是在【靜態圖執行】時,這種創建tf.Variable的行為只會發生在第一步跟蹤Python代碼邏輯創建計算圖時,這會導致被@tf.function修飾前【eager執行】和被@tf.function修飾后【靜態圖執行】的輸出不一致。實際上,TensorFlow在這種情況下一般會報錯。

          3,被@tf.function修飾的函數不可修改該函數外部的Python列表或字典等結構類型變量。

          解釋:靜態計算圖是被編譯成C++代碼在TensorFlow內核中執行的。Python中的列表和字典等數據結構變量是無法嵌入到計算圖中,它們僅僅能夠在創建計算圖時被讀取,在執行計算圖時是無法修改Python中的列表或字典這樣的數據結構變量的。

          關于Autograph的機制的原理是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注本站行業資訊頻道了解更多相關知識。

          標簽:autograph-

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          民生銀行薪資理財卡怎么辦理?首先必須是公司去統一辦理,個人用戶是不受理的。如果您是公司的財務人員可去申請,但是一般對員工人數、每月所發總額有相關規定,總額是不能少于20萬。然后就是相關材料的準備比如員工身份證號的提供、授權某人辦理的授權書、一式兩份加蓋代發單位公章,法人章的《中國民生銀行薪資理財卡申辦協議書》、一式兩份加蓋代發單位公章,法人章的《中國民生銀行代發工資協議書》、代發單位還應提交人民銀...

          國企改革是哪一年開始的?在2016年的時候,國企改革就明顯收到國家的重視,各種政策文件下發,股市中國企改革很快就成為一個熱點,收到廣大資金青睞,國企改革的發展具體就是以下四個階段:一、1978年——1992年,國家仍然采用的是計劃經濟體制,市場經濟萌芽階段,《關于擴大國營工業企業經營自主權的若干規定》的頒發開啟第一波國企改革浪潮,明確了我國國企改革的方向,初步從計劃轉變到市...

          平時工作中,經常會接觸到企業“外檔”和“內檔”,不少朋友會問我什么是企業“內檔”,今天小編和大家一起來看看,公司內檔去哪里調取?調取公司內檔需要什么材料?企業“外檔”和“內檔”查詢方法詳解公司內檔去哪里調取?調取公司注冊內檔要去工商局調取一、調取公司內檔資料:1、企業出具的委托書...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>