TensorFlow 2.1.0 来了,重大更新与改进了解一下
By 超神經
導讀:2019 年 11 月末,TensorFlow 的官方 GitHub 賬號發布了 TensorFlow 2.1.0-rc ?版本,現在,官方最新發布了 TensorFlow 2.1.0 正式版本。據介紹,這將是最后一個支持 Python 2 的版本。除此之外,TensorFlow 2.1.0 還帶來了很多重大更新與改進,了解一下。
關鍵詞:TensorFlow? 2.1.0? 正式版
TensorFlow 2.1.0 正式版本發布啦!
昨日,TensorFlow 官方 GitHub 賬號中,發布了 TensorFlow 2.1.0 正式版本。
發行說明地址:https://github.com/tensorflow/tensorflow/releases
如之前在發布候選版本時所宣布(點擊可了解詳情),TensorFlow 2.1 是支持 Python 2 的最后一個 TF 版本。鑒于 Python 2.7 于 2020 年 1 月 1 日正式到期,Python 核心開發團隊將不再對其進行任何維護,因此,TensorFlow 也從 2020 年 1 月 1 日開始停止支持Python 2。
除此之外,TensorFlow?2.1.0 還在 tf.keras、tf.data、tf.debugging 等均帶來了更新與改進。
最新版本的主要特點和改進
該 tensorflow pip 軟件包現在在默認情況下包括 GPU 支持(與 tensorflow-gpu 一樣),適用于 Linux 和 Windows。它在帶有和不帶有 NVIDIA GPU 的機器上均可運行。
更新后用戶只需安裝一個軟件包即可
不再需要區分 CPU 與 GPU?環境
tensorflow-gpu 仍然可用,對于關注軟件包大小的用戶,可以在 tensorflow-cpu 下載純 CPU 軟件包。
對于 Windows 用戶,正式發布的 tensorflow Pip 軟件包現在使用 Visual Studio 2019?16.4 版本生成,以便利用新的編譯器標志。
要使用這些新軟件包,用戶必須安裝「Microsoft Visual C ++ Redistributable for Visual Studio 2015、2017 和 2019」,下載地址傳送:https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads。
需要注意的是:
這不會更改在 Windows 上從源代碼構建 TensorFlow 所需的最低版本,但是在沒有此標志的情況下,構建 EIGEN_STRONG_INLINE 可能需要超過 48 個小時以上的時間才能編譯。有關 EIGEN_STRONG_INLINE 和 /d2Reduced
OptimizeHugeFunctions 的更多信息。請參閱 configure.py。
如果用戶的計算機上缺少任何一個必需的 DLL msvcp140.dll(舊)或msvcp140_1.dll(新),import tensorflow 將會輸出警告消息。
另外,官方還介紹,該 tensorflow pip 軟件包是用 CUDA 10.1 和 cuDNN 7.6 建立的。
tf.keras 的更新
在 GPU 和 Cloud TPU 上提供了對混合精度的實驗支持,引入了 TextVectorization 層,該層以原始字符串作為輸入,并負責文本標準化,標記化,n-gram 生成和詞匯索引。具體可參考這個端到端文本分類示例:
https://colab.research.google.com/drive/1RvCnR7h0_l4Ekn5vINWToI9TNJdpUZB3。
用戶對?TextVectorization 層的引入感到興奮
只要模型是在一個范圍內構建的,Keras.compile .fit .evaluate 和 predict 就允許被分布于 DistributionStrategy 范圍之外。
Cloud TPU Pod 提供了對 Keras .compile,.fit,
.evaluate,以及 .predict 的實驗支持,適用于云計算的 TPU,Cloud TPU,以及所有類型的 Keras 模型(順序,功能和子類模型)。
并且,現已經為云 TPU 啟用了自動外部編譯。這樣允許 tf.summary 更方便地與Cloud TPU 一起使用。
Cloud TPU 支持帶有 DistributionStrategy 和 Keras 的動態批處理大小。
除了 tf.data.Dataset 之外,還可以使用 numpy 數據支持的 TPU 上的 .fit,.evaluate,.predict,在 TensorFlow Model Garden 中提供了許多流行模型的 Keras 參考實現。
tf.data 的更新
對 tf.data datasets + DistributionStrategy(數據集+分布策略)的 rebatching 做了一些更改,以獲得更好的性能。
需要注意的是,數據集的行為也略有不同,因為重新標記的數據集基數將始終是副本數的倍數。
tf.data.Dataset 現在支持在分布式環境中(包括在 TPU pod 上)自動進行數據分發和分片。
tf.data.Dataset 的分發策略,現在可以調整為:
tf.data.experimental.AutoShardPolicy(OFF, AUTO, FILE, DATA) tf.data.experimental.ExternalStatePolicy(WARN, IGNORE, FAIL)
tf.debugging
添加了 tf.debugging.enable_check_numerics()和tf.debugging.disable_check_numerics()來幫助調試涉及 infinities 和 NaNs 的問題的根本原因。
tf.distribute
在 TPU 和 TPU pods上的自定義訓練循環支持,可以通過以下來實現:
strategy.experimental_distribute_dataset strategy.experimental_distribute_datasets_from_function strategy.experimental_run_v2 strategy.reduce除了 strategy.scope() 之外,還通過tf.distribute.
experimental_set_strategy() 支持全局分布策略。
TensorRT
現在默認情況下支持并啟用 TensorRT 6.0。這增加了對更多對 TensorFlow 操作的支持,包括
Conv3D Conv3DBackpropInputV2 AvgPool3D MaxPool3D ResizeBilinear ResizeNearestNeighbor此外,TensorFlow-TensorRT python 轉換 API 導出為 tf.experimental.tensorrt.Converter。
添加了環境變量 TF_DETERMINISTIC_OPS。當設置為「true」或「1」時,此環境變量使? tf.nn.bias_add 操作確定性地(即可重現地)進行,但當前僅在未啟用 XLA JIT ?編譯時才這樣操作。
設置 TF_DETERMINISTIC_OPS 為「true」或「1」也會使 cuDNN 卷積和最大池操作具有確定性。這使得 Keras Conv * D 和? MaxPool * D 層 CUDA-enabled GPU上運行時,可確定地在向前和向后兩個方向上操作。
重大變化
刪除了我們不知道用法的 Operation.traceback_with_start_lines。
從 tf.Tensor.__repr__()as 中移除了 id,因為 id 除了內部調試外沒有其他用處。
如果當時,不是在 session.run()期間,輸入張量的值已知,則某些 if.assert_* 方法現在在操作創建時會觸發斷言。這僅當圖形執行會導致錯誤時才會更改行為。發生這種情況時,將返回一個 noop,并將輸入張量標記為不可饋送(non-feedable)。
換句話說,如果它們在 session.run() 被用作 feed_dictto 的參數的鍵,則會引發錯誤。同樣,由于某些斷言操作沒有放入圖中,因此圖結構也會發生變化。如果未明確給出(最常見),則不同的圖可能會產生不同的 per-op 隨機種子。
以下 API 不再實驗:
tf.config.list_logical_devices tf.config.list_physical_devices tf.config.get_visible_devices tf.config.set_visible_devices tf.config.get_logical_device_configuration tf.config.set_logical_device_configuration此外,tf.config.experimentalVirtualDeviceConfi-
guration 已重命名為 tf.config.LogicalDeviceCon-figuration。
tf.config.experimental_list_devices 已被刪除,請使用?tf.config.list_logical_devices。
除了以上重要更新外,TensorFlow 2.1.0 還進行了多項錯誤修復與更改,具體可在發行說明中查看(https://github.com/tensorflow/tensorflow/releases)。
備注:公眾號菜單包含了整理了一本AI小抄,非常適合在通勤路上用學習。
往期精彩回顧2019年公眾號文章精選適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(第一部分)備注:加入本站微信群或者qq群,請回復“加群”加入知識星球(4500+用戶,ID:92416895),請回復“知識星球”喜歡文章,點個在看
總結
以上是生活随笔為你收集整理的TensorFlow 2.1.0 来了,重大更新与改进了解一下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI基础:经典卷积神经网络
- 下一篇: 50道练习带你玩转Pandas