0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TensorFlow 2.4.0 候選版本主要功能改進(jìn)

Tensorflowers ? 來源:TensorFlow ? 作者:TensorFlow ? 2020-11-26 09:29 ? 次閱讀

主要功能改進(jìn)

tf.distribution 通過tf.distribution.experimental.ParameterServerStrategy API 引入了對 Keras 模型異步訓(xùn)練實(shí)驗(yàn)性支持。更多細(xì)節(jié)請參見下文。

MultiWorkerMirroredStrategy不再是一個實(shí)驗(yàn)性 API,現(xiàn)在已進(jìn)入穩(wěn)定版本。針對命令執(zhí)行失敗和其他錯誤進(jìn)行了修復(fù)。請查看具體教程,了解如何使用 Keras 進(jìn)行多任務(wù)并行訓(xùn)練。

對 tf.experimental.numpy 的新模塊進(jìn)行了實(shí)驗(yàn)性支持,此 API 不僅與NumPy 兼容,更便于編寫 TF 程序,可參閱詳細(xì)指南了解更多信息,更多細(xì)節(jié)請參見下文。

針對 Ampere 架構(gòu)的 GPU 添加了 TensorFlow-32(簡稱TF32) 的支持,這是一種基于 Nvidia Ampere 的GPU模式,默認(rèn)情況下將啟用。

Keras Functional API 的內(nèi)部重構(gòu)已經(jīng)完成,這次重構(gòu)提高了構(gòu)建 Functional 模型的可靠性、穩(wěn)定性和性能。

Keras 混合精度訓(xùn)練的 API tf.keras.mixed_precision 已穩(wěn)定,不再為實(shí)驗(yàn)性支持。這允許在訓(xùn)練過程中使用 16 位浮點(diǎn)數(shù)格式,在 GPU 上的性能提升高達(dá) 3 倍,在 TPU 的提升也高達(dá) 60 %。

TF Profiler 現(xiàn)在支持使用采樣模式 API ,對多個工作進(jìn)程進(jìn)行性能分析。

TFLite Profiler Android 版本現(xiàn)已推出。請參閱指南以了解更多信息。

TensorFlow pip 安裝包現(xiàn)已使用 CUDA11 和 cuDNN 8.0.2構(gòu)建。

重大改進(jìn)

TF Core

C-API 的字符串張量的字節(jié)布局已被更新,已與 TF Core/C++ 匹配,即 tensorflow::tstring/TF_TString的連續(xù)數(shù)組。

C-API 函數(shù) TF_StringDecode、TF_StringEncode 和 TF_StringEncodedSize 不再被使用,現(xiàn)已移除;關(guān)于 C 語言中的字符串訪問/修改,請參見core/platform/ctstring.h。

tensorflow.python、tensorflow.core和tensorflow.compiler 模塊現(xiàn)在被隱藏。這些模塊不再是 TensorFlow 可訪問 API 的一部分。

tf.raw_ops.Max 和 tf.raw_ops.Min 不再接受類型為tf.complex64 或 tf.complex128 的輸入,因?yàn)檫@些操作對于復(fù)雜類型的行為沒有被明確定義。

由于使用了 TensorFloat-32,某些 float32 操作在基于 Ampere 架構(gòu)的 GPU 上以較低的精度運(yùn)行,包括乘法和卷積。具體來說,這類運(yùn)算的輸入從 23 位精度四舍五入到 10 位。這對于深度學(xué)習(xí)模型來說,在實(shí)踐中不太會造成問題。但在某些情況下,TensorFloat-32 (單精度浮點(diǎn)數(shù)值)也被用于 complex64 操作??梢酝ㄟ^調(diào)用config.experimental.enable_tensor_float_32_execution(False) 來禁用 TensorFloat-32 。

默認(rèn)情況下,XLA:CPU 和 XLA:GPU 設(shè)備不再注冊。如果你真的需要它們,請使用 TF_XLA_FLAGS=--tf_xla_enable_xla_devices,但該標(biāo)志位也將在后續(xù)版本中刪除。

tf.keras:

compile() 中的 steps_per_execution 參數(shù)已穩(wěn)定,不再為實(shí)驗(yàn)性支持,如果您傳遞的是experimental_steps_per_execution,請?jiān)谀愕拇a中重新命名為 steps_per_execution 。這個參數(shù)控制了在調(diào)用 fit() 時,每次調(diào)用 tf.function 時要運(yùn)行的批次數(shù)量。在單次 tf.function 調(diào)用中運(yùn)行多個批次可以極大地提高在 TPU 中或帶有大量 Python 計(jì)算的小型模型的性能。

對 Keras Functional API 內(nèi)部的重大重構(gòu)可能會影響到以下代碼:

在檢查 Keras 符號輸入/輸出時,使用isinstance(x, tf.Tensor) 而不是 tf.is_tensor的代碼,應(yīng)該改用 tf.is_tensor。

過分依賴符號張量所附加的確切名稱的代碼(例如,假設(shè)輸入的結(jié)尾為":0",將名稱作為唯一的標(biāo)識符,而不是使用tensor.ref() 等)。

使用 get_concrete_function 直接跟蹤 Keras 符號輸入的代碼,應(yīng)該改成直接構(gòu)建匹配的 tf.TensorSpecs 并跟蹤TensorSpec對象。

依賴于 TensorFlow 操作轉(zhuǎn)換為操作層后所對應(yīng)的確切數(shù)量和名稱的代碼,可能需要更改。

使用了tf.map_fn/tf.cond/tf.while_loop/control flow 作為操作層的代碼,且碰巧能在 TF 2.4 之前的版本工作的代碼。現(xiàn)在將明確地不支持這些功能。在 TF 2.4 之前,將這些操作轉(zhuǎn)換為 Functional API 操作層是不可靠的,而且容易出現(xiàn)難以理解或無法定位的錯誤。

直接對 Keras 符號值進(jìn)行斷言操作的代碼,如 tf.rank 這樣可根據(jù)輸入是靜態(tài)值或符號值而返回對應(yīng)的類型的操作,現(xiàn)在這些操作將統(tǒng)一返回符號值。

能夠直接泄露張量到計(jì)算圖以外的代碼,在這個版本中將更易于導(dǎo)致泄露。

嘗試直接計(jì)算 Keras 符號輸入/輸出的梯度的代碼?,F(xiàn)在可以使用 GradientTape ,來代替?zhèn)鬟f給已構(gòu)建模型的實(shí)際張量。

需要通過轉(zhuǎn)換后的操作層進(jìn)行非常復(fù)雜的形狀操作才能工作的代碼。Keras 符號形狀推理被證明是不夠的。

試圖手動逐層遍歷 tf.keras.Model 的代碼。它假設(shè)層中只有一個位置參數(shù)。單這個假設(shè)在 TF 2.4 之前也不成立,新版本中更容易引起問題。

在構(gòu)建模型之前需要手動輸入keras.backend.get_graph() 的代碼,現(xiàn)在已經(jīng)不需要這么做了。

在調(diào)用 Functional API Keras 模型一開始便強(qiáng)制進(jìn)行輸入形狀假釋的代碼。這可能對一些用戶造成影響,如 在 Functional 模型中創(chuàng)建 Input 對象時使用的形狀與傳遞給該模型的數(shù)據(jù)的形狀不匹配時。您可以通過使用正確形狀的數(shù)據(jù)調(diào)用模型,或者通過放寬 Input 形狀假設(shè)來解決不匹配的問題(您可以將 shape 屬性設(shè)為 None ,將此作為軸(axis)以表示這是動態(tài)的),您也可以通過設(shè)置 model.input_spec = None 來完全禁止輸入檢查。

tf.data:

tf.data.experimental.service.DispatchServer 現(xiàn)在采用配置元組而不是單個參數(shù)。用法更新為 tf.data.experimental.service.DispatchServer(dispatcher_config)。

tf.data.experimental.service.WorkerServer 現(xiàn)在采用配置元組,而不是單個參數(shù)。用法更新為 tf.data.experimental.service.WorkerServer(worker_config)。

tf.distribute:

移除 tf.distribution.Strategy.experimental_make_numpy_dataset。請使用 tf.data.Dataset.from_tensor_slices 來代替。

將 tf.distribut.StrategyExtended.reduce_to、tf.distribut.StrategyExtended.batch_reduce_to、tf.distribut.ReplicaContext.all_reduce 中的 experimental_hints 重命名為 options。

將 tf.distribution.experimental.CollectiveHints 重命名為 tf.distribution.experimental.CommunicationOptions。

將 tf.distribution.experimental.CollectiveCommunication 重命名為 tf.distribution.experimental.CommunicationImplementation。

將 tf.distribut.Strategy.experimental_distribute_datasets_from_function 重命名為 distribute_datasets_from_function,因?yàn)樗粌H支持實(shí)驗(yàn)環(huán)境。

刪除了 tf.distribut.Strategy.experimental_run_v2 方法,該方法在 TF 2.2 中已被廢棄。

tf.lite:

引入了 tf.quantization.quantize_and_dequantize_v2,它更新了超過范圍的量化的梯度定義。要模擬tf.quantization.quantize_and_dequantize(...)的 V1 行為,使用tf.grad_pass_through(tf.quantization.quantize_and_dequantize_v2)(...)。


如果您想詳細(xì)了解 本文提及 的相關(guān)內(nèi)容,請參閱以下文檔。這些文檔深入探討了這篇文章中提及的許多主題:

使用 Keras 進(jìn)行多任務(wù)并行訓(xùn)練
https://tensorflow.google.cn/tutorials/distribute/multi_worker_with_keras

tf.experimental.numpy
https://tensorflow.google.cn/api_docs/python/tf/experimental/numpy

詳細(xì)指南
https://tensorflow.google.cn/guide/tf_numpy

tf.keras.mixed_precision
https://tensorflow.google.cn/api_docs/python/tf/keras/mixed_precision?version=nightly

采樣模式 API
https://tensorflow.google.cn/guide/profiler#profiling_apis

指南
https://tensorflow.google.cn/lite/performance/measurement#trace_tensorflow_lite_internals_in_android

TensorFloat-32
https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/

責(zé)任編輯:xj

原文標(biāo)題:TensorFlow 2.4.0 候選版本發(fā)布

文章出處:【微信公眾號:TensorFlow】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1510

    瀏覽量

    62338
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    473

    瀏覽量

    16538
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    329

    瀏覽量

    60605

原文標(biāo)題:TensorFlow 2.4.0 候選版本發(fā)布

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    變頻電源的主要功能及特點(diǎn)

    變頻電源的主要功能及特點(diǎn) 1. 引言 隨著現(xiàn)代工業(yè)自動化和智能化的發(fā)展,對電力供應(yīng)的穩(wěn)定性和靈活性提出了更高的要求。變頻電源作為一種能夠提供可變頻率和電壓的電源設(shè)備,已經(jīng)成為工業(yè)自動化領(lǐng)域不可或缺
    的頭像 發(fā)表于 12-04 10:06 ?280次閱讀

    數(shù)字化智能工廠的主要功能組成

    數(shù)字化智能工廠是一種基于數(shù)字化技術(shù)和智能化系統(tǒng)的現(xiàn)代制造工廠,主要功能包括自動化生產(chǎn)設(shè)備、信息技術(shù)基礎(chǔ)設(shè)施、數(shù)據(jù)采集與分析系統(tǒng)、互聯(lián)互通技術(shù)、人工智能與機(jī)器學(xué)習(xí)、虛擬現(xiàn)實(shí)與增強(qiáng)現(xiàn)實(shí)、安全防護(hù)體系和綠色制造。
    的頭像 發(fā)表于 10-08 11:40 ?532次閱讀
    數(shù)字化智能工廠的<b class='flag-5'>主要功能</b>組成

    FPD link主要功能模塊

    電子發(fā)燒友網(wǎng)站提供《FPD link主要功能模塊.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 11:38 ?0次下載
    FPD link<b class='flag-5'>主要功能</b>模塊

    漏洞掃描的主要功能是什么

    漏洞掃描是一種網(wǎng)絡(luò)安全技術(shù),用于識別計(jì)算機(jī)系統(tǒng)、網(wǎng)絡(luò)或應(yīng)用程序中的安全漏洞。這些漏洞可能被惡意用戶利用來獲取未授權(quán)訪問、數(shù)據(jù)泄露或其他形式的攻擊。漏洞掃描的主要功能是幫助組織及時發(fā)現(xiàn)并修復(fù)這些安全
    的頭像 發(fā)表于 09-25 10:25 ?485次閱讀

    直流負(fù)載箱的主要功能有哪些?

    直流負(fù)載箱是專門用于模擬和測試直流電源系統(tǒng)負(fù)載的設(shè)備,其主要功能包括以下幾點(diǎn): 直流負(fù)載箱可以模擬各種不同類型的負(fù)載,如電阻、電感、電容等,以滿足不同應(yīng)用場景的需求。通過調(diào)整負(fù)載箱的參數(shù),可以實(shí)現(xiàn)
    發(fā)表于 09-24 16:30

    電子地圖的主要功能與應(yīng)用

    電子地圖,即數(shù)字地圖,是利用計(jì)算機(jī)技術(shù),以數(shù)字方式存儲和查閱的地圖。它不僅繼承了傳統(tǒng)紙質(zhì)地圖的基本功能,還通過現(xiàn)代科技手段實(shí)現(xiàn)了諸多創(chuàng)新應(yīng)用。以下是電子地圖的主要功能與應(yīng)用: 一、主要功能 快速存取
    的頭像 發(fā)表于 09-12 11:18 ?2414次閱讀
    電子地圖的<b class='flag-5'>主要功能</b>與應(yīng)用

    GUTOR不間斷電源的主要功能是什么?

    GUTOR不間斷電源的主要功能是什么?
    發(fā)表于 09-06 17:44

    微處理器的主要功能是什么

    微處理器(Microprocessor),作為計(jì)算機(jī)系統(tǒng)的核心部件,其主要功能對于整個計(jì)算機(jī)系統(tǒng)的運(yùn)行至關(guān)重要。
    的頭像 發(fā)表于 08-22 11:48 ?2247次閱讀

    RFID天線的工作原理和主要功能

    RFID(Radio Frequency Identification,無線射頻識別)天線作為RFID系統(tǒng)中的關(guān)鍵組件,其工作原理和主要功能對于整個系統(tǒng)的性能和穩(wěn)定性至關(guān)重要。以下是對RFID天線工作原理和主要功能的詳細(xì)闡述。
    的頭像 發(fā)表于 08-09 15:38 ?1517次閱讀

    高頻調(diào)諧器的主要功能有哪些

    高頻調(diào)諧器是一種廣泛應(yīng)用于電子通信領(lǐng)域的設(shè)備,其主要功能是對接收到的高頻信號進(jìn)行調(diào)諧、濾波、放大等處理,以滿足通信系統(tǒng)對信號質(zhì)量的要求。 一、調(diào)諧功能 調(diào)諧功能是高頻調(diào)諧器最基本的功能
    的頭像 發(fā)表于 07-16 16:35 ?904次閱讀

    opencv的主要功能有哪些

    OpenCV(Open Source Computer Vision Library)是一個開源的計(jì)算機(jī)視覺庫,提供了大量的計(jì)算機(jī)視覺算法和工具。以下是OpenCV的主要功能: 圖像處理
    的頭像 發(fā)表于 07-16 10:35 ?1727次閱讀

    連接器的主要功能是什么

    連接器的主要功能是實(shí)現(xiàn)電子設(shè)備之間的電氣連接和信號傳輸。連接器的種類繁多,應(yīng)用領(lǐng)域廣泛,其主要功能可以歸納為以下幾點(diǎn): 電氣連接:連接器的主要功能是實(shí)現(xiàn)電子設(shè)備之間的電氣連接。連接器通過其金屬接觸件
    的頭像 發(fā)表于 06-20 09:22 ?1178次閱讀

    接地電阻柜的主要功能是控制和限制接地電流

    中性點(diǎn)接地電阻柜的主要功能是控制和限制接地電流
    的頭像 發(fā)表于 05-09 15:16 ?480次閱讀
    接地電阻柜的<b class='flag-5'>主要功能</b>是控制和限制接地電流

    SMD電感器的主要功能是什么?

    SMD電感器的主要功能是什么? SMD電感器的主要功能是用于電路中的電感元件,主要用于儲存能量、傳輸信號、濾波和產(chǎn)生磁場等。 一、能量儲存和傳輸: SMD電感器可以儲存電能并將其傳輸?shù)诫娐返钠渌糠?/div>
    的頭像 發(fā)表于 02-03 15:07 ?1270次閱讀

    TC397的VDDP3引腳的主要功能是什么?

    1.TC397的VDDP3引腳的主要功能是什么?用來給類似外部FLASH供電使用的嗎? 2.我是否可以不使用VDDP3引腳,講VDDP3引腳串聯(lián)一個100nf電容到GND? 3.TC3X系列是否有硬件設(shè)計(jì)指導(dǎo)手冊?
    發(fā)表于 02-01 08:28