深度解讀TensorFlow,了解它的最新發展!

2020-11-29 IT168

  【IT168 評論】TensorFlow的功能

  TensorFlow適用於Matlab和C ++的API,有廣泛的語言支持。在前段時間的TensorFlow峰會上,TensorFlow 發布了面向 JavaScript 開發者的全新機器學習框架 TensorFlow.js。

  TensorFlow.js 是一個開源的用於開發機器學習項目的 WebGL-accelerated JavaScript 庫。TensorFlow.js 可以為開發者提供高性能的、易於使用的機器學習構建模塊,允許研發人員在瀏覽器上訓練模型,或以推斷模式運行預訓練的模型。TensorFlow.js 不僅可以提供低級的機器學習構建模塊,還可以提供高級的類似 Keras 的 API 來構建神經網絡。

  TensorFlow其他應用

  研發者還可以在TensorFlow上構建其他機器學習算法,例如決策樹或k-Nearest Neighbors。以下是TensorFlow的生態系統:

  TensorFlow生態系統


  從上圖可以看出,TensorFlow集成良好,並且支持GPU處理、python和C++語言,研發人員可以將它與docker等容器集成使用。

  TensorBoard

  TensorBoard是一套可視化工具,研發人員使用TensorFlow寫的神經網絡看上去會顯得非常複雜混亂,為了可以更加直觀的調試、優化神經網絡,谷歌開發了TensorBoard。Tensorboard是tensorflow內置的一個可視化工具,它通過將tensorflow程序輸出的日誌文件的信息可視化,使得tensorflow程序的理解、調試和優化更加簡單高效。Tensorboard的可視化依賴於tensorflow程序運行輸出的日誌文件,因而tensorboard和tensorflow程序在不同的進程中運行。

  mnist_tensorboard

  TensorFlow在國內的現狀

  對於國內的一些初創型AI企業來說,TensorFlow顯得尤為重要,但是從目前現狀來看,絕大多數的創業公司更忠於老牌深度學習框架,比如:Caffe、Keras、Theano。

  以Keras為例,一些人工智慧企業選擇它的理由是:Keras句法清晰;API簡單,易用;文檔齊全,並且文檔內容組織地好,從簡單到複雜,一步步的指引;擴展性好;後端支持Tensorflow, theano,mxnet,cntk,而且自定義層比較好寫,並且關鍵一點是Keras 強調極簡主義——研發者只需幾行代碼就能構建一個神經網絡。

  對於國外而言,TensorFlow是非常受歡迎的,從Github公開的數據中我們可以看到,光是該工具的fork就已經達到了60389,位於同類型工具的第一位。

  然而在TensorFlow的中國社區中,它的影響力卻沒有那麼強大。據了解,目前為止,TensorFlow中國的fork數僅有3315,僅為官方原版TensorFlow社區的5%。

  TensorFlow最新發布

  2018年3月,谷歌發布了Tensorflow 1.7.0版本,相比原版有不少的重大更新。該版本的TensorFlow和英偉達Tensor RT進行了集成,達成對GPU硬體計算環境的高度優化。在測試中,集成版本的TensorFlow比原版(在7毫秒延遲環境下)執行速度快了8倍。

  近日,TensorFlow 發表推文正式發布 TensorFlow v1.9。谷歌大腦研究員、Keras作者François Chollet對於這一版本評價甚高,他說:「不管是不是TF用戶都應該看一看:TF最近進步巨大。這是通往ML未來的一大步。」對於TensorFlow新版的發布,各大廠商、企業、研發人員又一次擦亮眼睛,期待著新版本TensorFlow的功能改進。

  那麼,這次更新究竟都涉及什麼功能呢?

  首先是對Keras的支持。Keras是一個深度學習的高級API,把創建和訓練模型所需的工作整合成了很多模塊,TensorFlow是它的一個後端。在TensorFlow中,它叫tf.keras。

  據了解,TensorFlow的新手指南變了樣,帶領小白們從Keras入手,還附上了一個詳細的Keras Guide。

  同時,TensorFlow裡的Keras本身也有提升。tf.keras升級到了Keras 2.1.6 API,新增了tf.keras.layers.CuDNNGRU和tf.keras.layers.CuDNNLSTM,分別用於更快的GRU實現和更快的LSTM實現。

  主要特點和改進

  •   更新文檔tf.keras:基於新Keras的入門和程式設計師指南頁面。

  •   為Keras 2.1.6 API更新tf.keras。

  •   添加tf.keras.layers.CuDNNGRU和tf.keras.layers.CuDNNLSTM層。

  •   將核心功能列的支持和損失添加到梯度boosted tree估計器中。

  •   Python接口用於TFLite優化轉換器已擴展,命令行界面(toco,tflite_convert)再次包括在標準pip安裝。

  突破性變化

  •   空變量範圍,用variable_scope(tf.get_variable_scope(), …)替換variable_scope(」, …)。

  •   用於構建自定義操作的標頭從site-packages / external移至site-packages / tensorflow / include / external。

  錯誤修復

  tfe.Network已棄用,使用tf.keras.Model。

  其他更改

  •   添加GCS配置操作。

  •   更改籤名MakeIterator以啟用傳播錯誤狀態。

  •   兩個Dirichlet分布的KL分歧。

  •   對於超過EOF的某些讀取,GcsFileSystem行為更一致。

  •   更新tf.scan的基準以匹配eager和graph模式的範圍。

  •   為複雜dtypes修復tf.reduce_prod gradient了錯誤。

  •   在變量中允許使用』.』(例如「hparams.parse(』ab = 1.0』)」),之前這會導致錯誤。這將對應於具有嵌入式』.』的屬性名稱。符號(例如』a.b』),只能間接訪問(例如通過getattr和setattr)。要設置它,用戶首先需要將變量顯式添加到hparam對象(例如「hparams.add_hparam(name =』a.b』,value = 0.0)」)。

  •   graph和eager模式下tf.scan的基準。

  •   增加了對FFT,FFT2D,FFT3D,IFFT,IFFT2D和IFFT3D的complex128支持。

  •   使ids獨特nn.embedding_lookup_sparse,當批處理中存在重複的ID時,這有助於減少用於查找嵌入的RPC調用。

  •   在boosted tree中支持指標列。

  •   防止tf.gradients()通過整數張量反向傳播。

  •   將LinearOperator [1D,2D,3D] Circulant添加到tensorflow.linalg。

  •   Conv3D,Conv3DBackpropInput,Conv3DBackpropFilter現在可提供任意支持。

  •   添加tf.train.Checkpoint用於讀寫基於對象的檢查點。

  •   添加了LinearOperatorKronecker,無密集實現克羅內克積。

  •   允許LinearOperator進行廣播。

  •   SavedModelBuilder現在將重複刪除指向具有相同基本名稱和相同內容的文件的資源名稱。請注意,如果之前具有相同名稱但內容不同的資源相互覆蓋,則可能會導致新資源文件包含在SavedModels中。

  結論

  無論怎樣,我們都不得不承認TensorFlow是一個很棒的系統,人們用人工智慧做了很多令人驚嘆的事情,包括一些醫療保健、電影推薦引擎、音樂、個性化廣告以及社交媒體情感挖掘等,TensorFlow確實是實現這些目標的頭等功臣!

相關焦點

  • TensorFlow 攜手 NVIDIA,使用 TensorRT 優化 TensorFlow Serving...
    HTTP/REST API at:localhost:8501 …$ curl -o /tmp/resnet/resnet_client.py https://raw.githubusercontent.com/tensorflow/serving/master/tensorflow_serving/example/resnet_client.py
  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    那麼究竟哪種框架最適宜自己手邊的深度學習項目呢?本文作者從這兩種框架各自的功能效果、優缺點以及安裝、版本更新等諸多方面給出了自己的建議。如果你在讀這篇文章,那麼你可能已經開始了自己的深度學習之旅。如果你對這一領域還不是很熟悉,那麼簡單來說,深度學習使用了「人工神經網絡」,這是一種類似大腦的特殊架構,這個領域的發展目標是開發出能解決真實世界問題的類人計算機。
  • 玩轉TensorFlow?你需要知道這30功能
    如果你關心如何使模型保持最新並監控它們,那麼你可以了解一下這個產品、看看它的論文。地址是:tensorflow.org/tfx/?網址:https://www.tensorflow.org/guide/keras12)Tensor2TensorTensor2Tensor 是一個深度學習模型和數據集的開源軟體庫
  • TensorFlow極速入門
    一、前言目前,深度學習已經廣泛應用於各個領域,比如圖像識別,圖形定位與檢測,語音識別,機器翻譯等等,對於這個神奇的領域,很多童鞋想要一探究竟,這裡拋磚引玉的簡單介紹下最火的深度學習開源框架 tensorflow。
  • 最熱門的深度學習框架TensorFlow入門必備書籍
    但進入機器學習和人工智慧領域並不是一件簡單的事情,目前市場上有許多大量的學習資源,許多開發者和想要進入的愛好者往往很難找到適合自己的發展路徑。其實,早在 2015 年底,谷歌就開源了內部使用的深度學習框架 TensorFlow 。眾多研究表明,Tensorflow 是研究深度學習的首選平臺。
  • python應用之基於tensorflow的數據擬合:深度學習之預測入門篇
    實驗目的:1、了解python在深度學習領域的應用2、學習安裝python第三方依賴庫實驗環境:已正確安裝python3.5以及依賴庫tensorflow、matplotlib預測過程展示:1、應用領域python是一種高級面向對象的動態類型語言,具有開發高效,學習簡單的特點,主要應用於大數據、深度學習、
  • TensorFlow 資源大全中文版
    (點擊上方藍字,快速關注我們)譯文:伯樂在線專欄作者 - Yalye英文:jtoy如有好文章投稿
  • 教程| 如何用TensorFlow在安卓設備上實現深度學習推斷
    從源安裝和配置 TensorFlow(https://www.tensorflow.org/install/install_sources)。3.在 TensorFlow 目錄下運行下列命令行:bazel build tensorflow/tools/graph_transforms:transform_graphbazel-bin/tensorflow/tools/graph_transforms/transform_graph \ --in_graph=/your/.pb/file \ --outputs="output_node_name
  • tensorflow初級必學算子
    在之前的文章中介紹過,tensorflow框架的核心是將各式各樣的神經網絡抽象為一個有向無環圖,圖是由tensor以及tensor變換構成;雖然現在有很多高階API可以讓開發者忽略這層抽象,但對於靈活度要求比較高的算法仍然需要開發者自定義網絡圖,所以建議開發者儘量先學習tf1.x
  • 作為TensorFlow的底層語言,你會用C++構建深度神經網絡嗎?
    從頭開始構建 TensorFlow 將避免這些問題,同時確保使用的是最新版本的 API。cd /path/tensorflowgit clone隨後你需要進行配置,如選擇是否使用 GPU,你需要這樣運行配置腳本:cd /path/tensorflow.
  • 深度學習筆記8:利用Tensorflow搭建神經網絡
    作者:魯偉 一個數據科學踐行者的學習日記。
  • 關於TensorFlow,你應該了解的9件事
    #1:TensorFlow 是一個強大的機器學習框架TensorFlow 是一個機器學習框架,如果你有大量的數據,或者你在追求人工智慧最先進的技術:深度學習、神經網絡等,它都會使你如虎添翼。它可不是數據科學界的瑞士軍刀,而是工業車床!
  • TensorFlow 中文資源全集,學習路徑推薦
    /GitHub:https://github.com/tensorflow安裝教程中文安裝教程Mac安裝:http://www.cnblogs.com/tensorflownews/p/7298646.htmlubuntu 16.04 安裝 tensorflow-gpu:http://www.tensorflownews.com/2017/09/02/tensorflow-gpu-install-ubuntu
  • 深度學習的敲門磚:手把手教你TensorFlow初級入門
    而本文就是通過對TensorFlow的一些基本特點的介紹,讓你了解它是機器學習類庫中的一個不錯的選擇。讓我們設想一下,當我們用Python寫代碼時,沒有那些方便的類庫會是怎樣一種窘境。 這就好比你有一個新的智慧型手機,而不安裝任何應用程式。 雖然它仍然可以打電話,發簡訊,但如果有了那些更方便的應用程式,這部智慧型手機才更有價值。
  • 基於RTX2060構建TensorFlow-gpu(keras)學習平臺
    開始菜單運行anaconda navigator檢查是否安裝了notebook(默認有安裝)三、安裝tensorflow/keras在激活的環境中安裝:1. 如果機器上有gpu,則安裝gpu版本,沒有GPU就安裝cpu版。
  • TFX 最新博文:如何使用 TensorFlow 生態系統實現快速高效的 BERT...
    它展示了整個 TensorFlow 擴展(TFX)管道以生成可部署的 BERT 模型,並將預處理步驟作為模型圖的一部分。BERT 部署的現狀transformer 模型的最新進展令人吃驚。但不幸的是,將這些模型用在生產中卻並不簡單或者完美。理想情況下,我們希望將原始文本發送到伺服器,但是 BERT 模型需要對輸入文本進行預處理,然後才能從實際模型中獲得預測。
  • 步履不停:TensorFlow 2.4新功能一覽!
    集合運算        https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/collective_ops.py
  • 在Windows中安裝Tensorflow和Kears深度學習框架
    在命令提示符窗口輸入下列命令: 建立Tensorflow Anaconda虛擬環境 conda create --name tensorflow python=3.5 anaconda 執行後屏界面顯示如圖3-9所示。
  • 最簡單的深度學習TensorFlow應用舉例!
    小編我的電腦很一般,沒有32G內存,也沒有1080,就windows上直接裝了23333windows+python 3.6+pycharm+tensorflow cpu話不多說,直接線性回歸,上圖。代碼截圖#接下來貼代碼#辰星樹洞import numpy as np #這是Python的一種開源的數值計算擴展,非常強大import tensorflow
  • 程式設計師1小時完成深度學習Resnet,谷歌tensorflow多次圖像大賽冠軍
    編譯環境:Python3.6TensorFlow-gpu 1.5.0Pycharm數 據 集:MNIST一、結構分析關於ResNet的來源我就不進行贅述了,相信讀者都對其或多或少有一定的了解,這個包攬各大圖像識別賽事冠軍的模型究竟有什麼與眾不同?