色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TensorFlow 2.0最佳實踐及主要變化

電子工程師 ? 來源:lq ? 2019-02-18 09:34 ? 次閱讀

為提高 TensorFlow 的工作效率,TensorFlow 2.0 進行了多項更改,包括刪除了多余的 API,使API 更加一致統一,例如統一的 RNNs (循環神經網絡),統一的優化器,并且Python 運行時更好地集成了 Eager execution 。

許多 RFC 已經對 TensorFlow 2.0 的這些更改給出了解釋。本指南基于您對 TensorFlow 1.x 有一定的了解的前提,為您介紹在 TensorFlow 2.0 中的開發有什么不同。

API 整理

在 TensorFlow 2.0 中,有許多 1.X 的 API 被刪除或移動了。也有部分 1.X 的 API 被 2.0 版本的等價 API 所替代:tf.summary,tf.keras.metrics 和 tf.keras.optimizers。自動應用這些重命名,最簡單的方法是使用 TensorFlow 2.0 升級腳本。

Eager execution

TensorFlow 1.X 要求用戶通過調用 tf.* API 手動的將抽象語法樹(圖)拼接在一起。然后,它要求用戶將一組輸出張量和輸入張量傳遞給 session.run() 調用,來手動編譯抽象語法樹。相比之下,TensorFlow 2.0 executes eagerly(如正常使用 Python 一樣)在 2.0 的版本中,其 graphs(抽象語法樹)和 sessions 在實現的細節上應該是一樣的。

不再有全局變量

TensorFlow 1.X 非常依賴于隱式全局命名空間。當你調用 tf.Variable 時,它會被放入默認圖中,即使你忘記了指向它的 Python 變量它也會留在那里。這時,您可以恢復該 tf.Variable(),但前提是您得知道它已創建的名稱。如果您無法控制變量的創建,很難做到這一點。因此,各種機制以及尋找用戶創建變量的框架不斷涌現,試圖幫助用戶再次找到他們的變量。

TensorFlow 2.0 取消了所有這些機制(Variables 2.0 RFC),支持默認機制:跟蹤變量! 如果你不再用到某個 tf.Variable,它就會被回收。

Functions, not sessions

session.run() 的調用幾乎類似于函數調用:指定輸入和要調用的函數,然后返回一組輸出。在 TensorFlow 2.0 中,您可以使用 tf.function() 來修飾 Python 函數以將其標記為 JIT( Just-In-Time )編譯,以便 TensorFlow 將其作為單個圖運行(Functions 2.0 RFC)。

這種機制使得 TensorFlow 2.0 擁有圖模式的許多優點:

性能:該函數可以被優化,例如節點修剪,內核融合等

可移植性:該函數可以導出 / 重新導入(SavedModel 2.0 RFC),允許用戶重用和將 TensorFlow 函數作為模塊共享

# TensorFlow 1.X

outputs = session.run(f(placeholder), feed_dict={placeholder: input})# TensorFlow 2.0

outputs = f(input)

由于能夠自由地穿插 Python 和 TensorFlow 代碼,您能夠充分利用 Python 的表現力。而且,可移植的 TensorFlow 在沒有 Python 解釋器的情況下也可執行。比如:mobile,C ++ 和 JS。避免用戶在添加 @tf.function 時重寫代碼,AutoGraph 會將 Python 構造的一個子集轉換成 TensorFlow 等價物。

TensorFlow 2.0 常用的建議

將代碼重構為更小的函數

TensorFlow 1.X 中的常見使用模式是 “kitchen sink” 策略,即預先列出所有可能計算的并集,然后通過 session.run() 計算選定的張量。在 TensorFlow 2.0 中,用戶應該根據需求將代碼重構為更小的函數。通常情況下,沒有必要用 tf.function 來修飾這些較小的函數;僅使用 tf.function 來修飾高級計算 — 例如,使用只有一個步驟的訓練或使用模型的正向傳遞,將代碼重構為更小的函數。

使用 Keras 層和模型來管理變量

Keras 模型和層提供了方便的變量和 trainable_variables 屬性,以遞歸方式收集所有因變量。這使得本地化管理變量非常方便。

Keras 層 / 模型繼承自 tf.train.Checkpointable 并與 @ tf.function 集成,這使得直接檢查點或從 Keras 對象導出 SavedModel 成為可能。您不一定要使用 Keras 的 fit() API 來集成。

結合 tf.data.Datasets 和 @tf.function

在迭代適合內存的訓練數據時,可以使用常規的 Python 循環。除此之外,tf.data.Dataset 則是從磁盤傳輸訓練數據的最好方法。數據集是可迭代的(不是迭代器),工作方式與其他 Python 循環類似。如果您想使用 AutoGraph 的等效圖操作替換 Python 循環,可以通過將代碼包裝在 tf.function() 中,充分利用數據集異步預取 / 流功能來實現。

@tf.function

def train(model, dataset, optimizer):

for x, y in dataset:

with tf.GradientTape() as tape:

prediction = model(x)

loss = loss_fn(prediction, y)

gradients = tape.gradients(loss, model.trainable_variables)

optimizer.apply_gradients(gradients, model.trainable_variables)

如果您使用 Keras.fit() API,則無需擔心數據集迭代。

model.compile(optimizer=optimizer, loss=loss_fn)

model.fit(dataset)

利用 AutoGraph 和 Python 控制流程

AutoGraph 提供了一種將依賴于數據的控制流轉換為圖模式等價的方法,如 tf.cond 和 tf.while_loop。

數據相關控制流常見出現于序列模型中。tf.keras.layers.RNN 包裝了 RNN 單元,允許您靜態或動態地展開循環神經網絡。為了演示,您可以重新實現動態展開,如下所示:

class DynamicRNN(tf.keras.Model):

def __init__(self, rnn_cell):

super(DynamicRNN, self).__init__(self)

self.cell = rnn_cell

def call(self, input_data):

# [batch, time, features] -> [time, batch, features]

input_data = tf.transpose(input_data, [1, 0, 2])

outputs = tf.TensorArray(tf.float32, input_data.shape[0])

state = self.cell.zero_state(input_data.shape[1], dtype=tf.float32)

for i in tf.range(input_data.shape[0]):

output, state = self.cell(input_data[i], state)

outputs = outputs.write(i, output)

return tf.transpose(outputs.stack(), [1, 0, 2]), state

使用 tf.metrics 聚合數據,使用 tf.summary 記錄數據

一套完整的 tf.summary 接口即將發布。您可以使用以下命令訪問 tf.summary 的 2.0 版本:

fromtensorflow.python.ops importsummary_ops_v2

有關詳細信息,請參閱文末鏈接:

https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/effective_tf2.md

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62569
  • python
    +關注

    關注

    56

    文章

    4792

    瀏覽量

    84627
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60527

原文標題:我們期待的TensorFlow 2.0還有哪些變化?

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C編程最佳實踐.doc

    C編程最佳實踐.doc
    發表于 08-17 14:37

    TensorFlow 20的這些變化你知道嗎

    我們期待的TensorFlow 20還有哪些變化
    發表于 04-08 14:31

    最佳天線實踐、布局指南以及天線調試程序

    有限的硬幣型電池)獲得的無線射程主要取決于天線的設計、塑料外殼以及良好的PCB布局。對于芯片和電源相同但布局和天線設計實踐不同的系統,它們的RF(射頻)范圍變化超過50%也是正常的。本應用筆記介紹了
    發表于 05-21 08:51

    Dockerfile的最佳實踐

    ”微服務一條龍“最佳指南-“最佳實踐”篇:Dockerfile
    發表于 07-11 16:22

    變量聲明最佳實踐

    所以我們開始編寫32位和16位代碼,并過渡到MPLAB X和XC編譯器。我想到的一個主題是聲明變量的最佳實踐。常規IpType。h或類型。h pr STDIN。或It8或字節char等任何想法,走哪條路?
    發表于 09-30 12:01

    虛幻引擎的紋理最佳實踐

    紋理是游戲不可或缺的一部分。 這是一個藝術家可以直接控制的領域,以提高游戲的性能。 本最佳實踐指南介紹了幾種紋理優化,這些優化可以幫助您的游戲運行得更流暢、看起來更好。 最佳實踐系列指
    發表于 08-28 06:39

    TensorFlow2.0 版本將來臨

    TensorFlow 2.0 的一部分,我們將停止分發 tf.contrib。我們將在未來幾個月與 contrib 模塊的所有者合作制定詳細的遷移計劃,包括如何在我們的社區頁面和文檔中宣傳您的 TensorFlow 擴展。
    的頭像 發表于 08-15 09:01 ?5501次閱讀

    TensorFlow安裝手冊之如何利用pip安裝 TensorFlow

    關于 TensorFlow 安裝,有很多方法可以實踐。本文將為大家詳細介紹如何利用 pip 安裝 TensorFlow
    的頭像 發表于 10-28 10:57 ?1.3w次閱讀

    機器學習框架Tensorflow 2.0的這些新設計你了解多少

    總是無法被撼動。而就在即將到來的2019年,Tensorflow 2.0將正式入場,給暗流涌動的框架之爭再燃一把火。
    的頭像 發表于 11-17 11:33 ?3153次閱讀

    TensorFlow 2.0 將包含許多 API 變更

    此外,由于我們棄用了某些模塊(例如 tf.flags 和 tf.contrib),您將無法通過切換至 compat.v1 來實現 TensorFlow 2.0 中的某些變更。升級使用這些模塊的代碼
    的頭像 發表于 03-01 09:36 ?5541次閱讀

    TensorFlow2.0終于問世,Alpha版可以搶先體驗

    之前開發者反饋,希望TensorFlow能夠簡化API、減少冗余并改進文檔和示例。這次2.0發布,聽取了開發者的建議,因此新版本有以下三大特點:簡單、強大、可拓展。
    的頭像 發表于 03-08 09:30 ?3629次閱讀
    <b class='flag-5'>TensorFlow2.0</b>終于問世,Alpha版可以搶先體驗

    TensorFlow 2.0 alpha提供即將發生的變化的預覽

    要快速上手 TensorFlow 2.0 Alpha 版,最佳途徑是前往 TensorFlow 的新網站。您可以在 tensorflow.o
    的頭像 發表于 03-10 10:17 ?2933次閱讀

    SAN管理最佳實踐指南

    電子發燒友網站提供《SAN管理最佳實踐指南.pdf》資料免費下載
    發表于 08-29 09:20 ?0次下載
    SAN管理<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b>指南

    SAN設計和最佳實踐指南

    電子發燒友網站提供《SAN設計和最佳實踐指南.pdf》資料免費下載
    發表于 09-01 11:02 ?0次下載
    SAN設計和<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b>指南

    Windows 10遷移的最佳實踐

    電子發燒友網站提供《Windows 10遷移的最佳實踐.pdf》資料免費下載
    發表于 09-07 15:37 ?0次下載
    Windows 10遷移的<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b>
    主站蜘蛛池模板: 嫩草成人国产精品| 野花日本免费完整版高清版动漫| 亚洲在线无码免费观看| 日本二区三区欧美亚洲国| 夜色资源站国产www在线视频| 成人天堂资源WWW在线| 理论片87福利理论电影| 亚洲大码熟女在线| 搞基福利社| 欧美成人无码A区在线观看免费| 亚洲午夜精品久久久久久抢| 国产成人综合在线视频| 欧美日韩在线成人看片a| 伊人影院综合| 国产精品一国产精品免费| 清晨紧湿爱运动h高h| 51精品国产AV无码久久久| 极品少妇高潮啪啪无码吴梦| 无码AV动漫精品一区二区免费 | 亚洲视频在线观看网站| 动漫H片在线观看播放免费| 老熟女重囗味HDXX| 乌克兰xxxxx| 18日本人XXXXXX18| 国产MD视频一区二区三区| 国产又黄又粗又爽又色的视频软件 | 十分钟免费观看高清视频大全| 武侠古典久久亚洲精品| 在线高清电影理论片4399| 高h肉辣文黄蓉| 久久这里只有精品1| 试看做受120秒免费午夜剧场| 一本道亚洲区免费观看| 宝贝好紧好爽再搔一点试視頻| 国产一区日韩二区欧美三区| 嫩草欧美曰韩国产大片| 亚洲精品无码专区在线播放| 2020年国产理论| 波多野结衣教师系列6| 久久视频这只精品99re6| 亚洲青青青网伊人精品|