TensorFlow 2.0正式版官宣!深度集成Keras

2021-02-15 新智元

TensorFlow 2.0正式版終於發布了!

谷歌今天宣布,開源機器學習庫TensorFlow 2.0現在可供公眾使用。

TensorFlow 2.0的Alpha版本今年初在TensorFlow開發者大會上首次發布,經過近7個月的不斷修改、更新,TensorFlow 2.0正式版可謂是千呼萬喚始出來。

作為最受歡迎的機器學習庫之一,自2015年穀歌大腦團隊發布TensorFlow以來,TensorFlow框架已被下載超過4000萬次。

為了提高易用性,TensorFlow 2.0進行了許多修改,如取消了一些被認為是多餘的API,並緊密集成和依賴tf.keras作為中央高級API。TensorFlow與Keras深度學習庫的集成化最初始於2017年2月發布的TensorFlow1.0,本次更新讓二者的集成程度進一步提高。

此外,當在Nvidia的Volta和Turing GPU上運行時,新版本的性能表現可以提高三倍。

下面,我們帶來對TensorFlow 2.0 新特性的具體介紹。

TensorFlow 2.0專注於簡單性和易用性,主要更新如下:

 

TensorFlow 2.0使得機器學習應用的開發更加容易。通過將Keras緊密集成到TensorFlow中、默認eager execution,以及Python函數執行,TensorFlow 2.0開發應用程式的經驗會讓Python開發者很熟悉。對於那些想要突破機器學習邊界的研究人員來說,我們在TensorFlow的底層API上投入了大量的精力:我們現在導出了所有內部使用的操作,並且為諸如變量和checkpoint等關鍵概念提供了可繼承的接口。允許用戶構建TensorFlow的內部構件,而無需重建TensorFlow。

能夠在各種runtimes(包括雲、web、瀏覽器和Node.js,移動和嵌入式系統)上運行模型,我們對SavedModel文件格式進行了標準化。這允許用戶使用TensorFlow運行模型,使用TensorFlow服務部署模型,使用TensorFlow Lite在移動和嵌入式系統上使用模型,使用TensorFlow.js在瀏覽器或Node.js上訓練和運行模型。

對於高性能的訓練場景,你可以使用 Distribution Strategy API以最小的代碼更改來分布訓練,並獲得出色的開箱即用性能。它通過 Keras 的 Model.fit 支持分布式訓練,還支持自定義訓練循環。此外,現在可以使用多GPU支持,Cloud TPU支持將在未來發布。

查看分布式訓練指南了解更多:

https://www.tensorflow.org/guide/distributed_training

TensorFlow 2.0在GPU上提供了許多性能改進。TensorFlow 2.0通過在Volta和Turing GPU上使用混合精度和幾行代碼(例如在ResNet-50和BERT中使用的),將訓練性能提高了 3 倍。TensorFlow 2.0與TensorRT緊密集成,並使用改進的API在谷歌雲上的NVIDIA T4 Cloud GPU上進行推理時提供更好的可用性和高性能。

在TensorFlow中構建模型時,對訓練和驗證數據的有效訪問是至關重要的。我們引入了TensorFlow Datasets,為包含各種數據類型(如圖像、文本、視頻等)的大量數據集提供了一個標準接口。

雖然仍然保留了傳統的基於會話的編程模型,但我們建議使用常規的Python開發和eager execution。tf.function可用於將代碼轉換成可遠程執行的、序列化和性能優化的圖形。此外,Autograph還可以將常規的Python控制流直接轉換為TensorFlow控制流。

如果你使用過TensorFlow 1.x,這裡有一個遷移到2.0的官方指南:

https://www.tensorflow.org/guide/migrate

TensorFlow 2.0也包括一個自動轉換腳本。

我們已經與谷歌內部和TensorFlow社區的許多用戶合作,測試了TensorFlow 2.0的功能,並對反饋感到非常興奮。例如,谷歌新聞團隊在TensorFlow 2.0中啟用了基於BERT的語言理解模型,從而極大地改進了新聞報導的覆蓋率。TensorFlow 2.0提供易於使用的API和快速實現新想法的靈活性,模型訓練和服務被無縫地集成到現有的基礎架構中。

而且,ML不僅是Python開發者專屬—JavaScript開發者可以使用TensorFlow.js進行訓練和推理。Swift語言的支持也正在進行中。

 

將Keras作為構建和訓練模型的中央高級API。 Keras提供了一些模型構建API,如順序列化、函數化、子類化以及立即執行(用於立即迭代和直觀調試)、tf.data(用於構建可擴展的輸入pipeline)等。

 

更靈活的資源分配策略:TF 2.0用戶將可以使用tf.distribute.StrategyAPI,通過最少的代碼修正來分配訓練策略,從而獲得出色的現成性能。TF 2.0支持Keras model.fit以及自定義訓練循環的分布式訓練,還提供多GPU支持,以及對多工作人員和Cloud TPU的實驗性支持。

 

建議使用函數,而不是會話。TF 2.0不鼓勵使用傳統的聲明式編程模型來構建圖形,再通過tf.Session執行,而是建議編寫常規Python函數來代替這一過程。使用tf.function裝飾器,可以將這些函數轉換為圖形,這些圖形可以遠程執行,序列化並針對性能進行優化。

 

實現tf.train.Optimizers和tf.keras.Optimizers的統一。對TF2.0使用tf.keras.Optimizers。作為公共API刪除了compute_gradients,使用GradientTape計算梯度。

 

AutoGraph將Python控制流轉換為TensorFlow表達式,允許用戶在有tf.function的函數中編寫常規Python語句。AutoGraph也適用於與tf.data,tf.distribute和tf.keras API一起使用的函數。

 

將交換格式統一為SavedModel。所有TensorFlow生態系統項目(TensorFlow Lite,TensorFlow JS,TensorFlow Serving,TensorFlow Hub)都接受SavedModels。模型狀態應保存到SavedModels或從SavedModels恢復。

 

一些API的更改:部分API符號被重命名或刪除,參數名稱也已更改。許多更改都是出於提高一致性和清晰性的考慮。TF 1.x版本API在compat.v1模塊中仍然可用。

 

清理了一些API:移除了tf.app,tf.flags和tf.logging以支持absl-py。不再使用如tf.global_variables_initializer和tf.get_global_step之類的輔助方法的全局變量。

 

自動混合精度圖形優化器簡化了將模型轉換為float 16的過程,更便於在Volta和Turing張量核心上進行加速。可以使用tf.train.experimental.enable_mixed_precision_graph_rewrite()包裝優化器類來啟用此功能。

 

添加環境變量TF_CUDNN_DETERMINISTIC。設置為TRUE或「 1」將強制選擇確定性cuDNN卷積和最大池算法。啟用此功能後,算法選擇過程本身也是確定性的。

這裡有一個方便的指南,了解如何有效使用TensorFlow 2.0中的所有新功能:

https://www.tensorflow.org/guide/effective_tf2

此外,為了簡化TensorFlow 2.0的入門工作,官方發布了幾個使用2.0 API的常用ML模型的參考實現:

https://www.tensorflow.org/resources/models-datasets

最後,兩個免費在線課程不容錯過:

https://www.coursera.org/learn/introduction-tensorflow

https://www.udacity.com/course/intro-to-tensorflow-for-deep-learning--ud187

https://medium.com/tensorflow/tensorflow-2-0-is-now-available-57d706c2a9ab

GitHub:

https://github.com/tensorflow/tensorflow/releases/tag/v2.0.0

更多閱讀:

TensorFlow 2.0  新鮮出爐!新版本,新架構,新特性

GitHub 12萬星!TensorFlow 2.0 Beta新鮮出爐,最終API已定

TensorFlow已死,TensorFlow萬歲!

相關焦點

  • Keras vs tf.keras: 在TensorFlow 2.0中有什麼區別?
    然後,我將討論為什麼您應該在以後的所有深度學習項目和實驗中都使用tf.keras。接下來,我將討論「計算backend」的概念,以及TensorFlow的流行度如何使其成為Keras最流行的backend,為Keras集成到TensorFlow的tf.keras子模塊中鋪平道路。
  • TensorFlow 1.9 新增 tf.keras 官方入門教程(Keras與TF的深度集成)
    好消息是Keras的許多核心功能已經融入了原生的TensorFlow(tf.keras),TensorFlow 1.9新增tf.keras官方入門文檔,介紹了tf.keras的使用。這幾天打開TensorFlow的官方教程頁(https://www.tensorflow.org/tutorials/),會發現教程頁中給出的DEMO變成了基於tf.keras的教程。
  • Keras,TensorFlow 的高級 API
    tf.keras 是 TensorFlow 的高級 API,旨在構建和訓練深度學習模型。此 API 可用於快速原型設計、尖端研究和實際生產,並具備三項關鍵優勢:簡單易用Keras 界面簡單一致,已針對常見用例進行優化。
  • 深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。-7.2.1.4-cp36-none-linux_x86_64.whl tensorflow_estimator-1.15.1-py2.py3-none-any.whl nvidia_tensorboard-1.15.0+nv20.10-py3-none-any.whlnvidia_tensorflow-1.15.4+nv20.10-cp36-cp36m-linux_x86_64.whl -i http
  • RTX 3090 的深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。-7.2.1.4-cp36-none-linux_x86_64.whl tensorflow_estimator-1.15.1-py2.py3-none-any.whl nvidia_tensorboard-1.15.0+nv20.10-py3-none-any.whlnvidia_tensorflow-1.15.4+nv20.10-cp36-cp36m-linux_x86_64.whl -i http
  • 詳解深度強化學習展現TensorFlow 2.0新特性(代碼)
    因此博主Roman Ring寫了一篇概述性的文章,通過實現深度強化學習算法來具體的展示了TensorFlow 2.0的特性。正所謂實踐出真知。TensorFlow 2.0的特性公布已經有一段時間了,但很多人對此應當還是一頭霧水。
  • 記一次裝好 Keras 和 TensorFlow(CPU版)
    然後回到 Jupyter 的命令行,運行從 keras 導入數據集的命令報錯,提示要求 pip install tensorflow。2  按照提示 在命令窗口:於是隨手百度了幾個,直接在命令後加上 -i xxx(鏡像網站):pip install tensorflow -i http://mirrors.aliyun.com/pypi/simple/先試了阿里的鏡像,又來了錯誤提示:
  • 教程 | Tensorflow keras 極簡神經網絡構建與使用
    發布於2015年,是一套高級API框架,其默認的backend是tensorflow,但是可以支持CNTK、Theano、MXNet作為backend運行。其特點是語法簡單,容易上手,提供了大量的實驗數據接口與預訓練網絡接口,最初是谷歌的一位工程師開發的,非常適合快速開發。
  • TensorFlow 2.0 正式版現已發布
    註:Keras with TensorFlow 連結https://tensorflow.google.cn/guide/keras/overviewEager Execution 連結https://tensorflow.google.cn/guide/eager為了能夠在不同運行時環境(如雲、Web、瀏覽器、Node.js、移動端以及嵌入式系統
  • 深度學習框架(TensorFlow、keras、PyTorch)
    一、TensorFlow(參見中文文檔)TensorFlow其命名基於工作原理,tensor 意為張量(即多維數組),flow 意為流動。
  • TensorFlow 2.0 中的 tf.keras 和 Keras 有何區別?為什麼以後一定要用 tf.keras?
    然後,我將說明為什麼你應該在以後所有的深度學習項目和實驗中都使用 tf.keras。再後面,我會講述「計算後端」的概念以及 TensorFlow 的流行度如何使其成為 Keras 最流行的後端,從而為 Keras 集成到 TensorFlow 的 tf.keras 子模塊中鋪平了道路。
  • RTX 3090的深度學習環境配置指南:Pytorch、TensorFlow、Keras
    還不支持cudatoolkit=11中下載cudnn)從https://developer.nvidia.com/rdp/cudnn-download下載cudnn,解壓後進入cuda/lib64路徑下,把裡面所有文件拷入對應虛擬環境(exp38)的lib中(6)裝tf2.5(不要裝tensorflow-gpu
  • TensorFlow 2.0 Alpha 版發布啦!快來嘗鮮!
    今天凌晨,谷歌在加州舉辦TensorFlow開發者峰會(TensorFlow Dev Summit),正式發布2.0版本。tensorflow.org 中所有這些熟悉的 「tf.keras」 示例均可在 2.0 中實現 「開箱即用」。Keras 的 「fit()」 適用於很多情況,但是,需要更高靈活性的開發者現在可以有更多選擇。
  • 100天搞定機器學習|day39 Tensorflow Keras手寫數字識別
    節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯繫的多維數據數組,即張量(tensor)。它靈活的架構讓你可以在多種平臺上展開計算,例如臺式計算機中的一個或多個CPU(或GPU),伺服器,行動裝置等等。
  • TensorFlow 1.9.0 正式版來了!新手指南全新改版
    TensorFlow 1.9.0正式版來了
  • TensorFlow官方最新tf.keras指南:面向對象構建深度網絡
    本指南的內容大致如下:Keras Functional API訓練和評價利用繼承構建層和模型保存和序列化模型指南地址:https://www.tensorflow.orgAPI(繼承式)混寫另外,用內置的函數可以直接可視化網絡結構了:指南地址:https://www.tensorflow.org
  • Tensorflow.keras筆記-卷積神經網絡
    Tensorflow.keras筆記-卷積神經網絡cifar10數據集    1.
  • 圖像分類任務中,Tensorflow 與 Keras 到底哪個更厲害?
    他們提出了一個名為TPU的獨立實例,它具有最強大的功率驅動計算能力來處理tensorflow的深度學習模型。是時候做一個了!我現在將幫助你使用tensorflow創建一個功能強大的圖像分類器。等等!什麼是分類器?這只是一個簡單的問題,你向你的tensorflow代碼詢問,給定的圖像是玫瑰還是鬱金香。所以,首先的首先,讓我們在機器上安裝tensorflow。
  • 一文上手Tensorflow2.0(四)
    查看上篇:一文上手Tensorflow2.0之tf.keras|三。在文末作者給出了答疑群的二維碼,有疑問的讀者可以進群提問。想要獲取更多的機器學習、深度學習資源,歡迎大家點擊上方藍字關注我們的公眾號:磐創AI。
  • Fast-SCNN的解釋以及使用Tensorflow 2.0的實現
    本文中使用的代碼並不是作者的正式實現,而是我對論文中描述的模型的重構的嘗試。隨著自動駕駛汽車的興起,迫切需要一種能夠實時處理輸入的模型。目前已有一些最先進的離線語義分割模型,但這些模型體積大,內存大,計算量大,Fast-SCNN可以解決這些問題。