谷歌剛發布的深度學習動態計算圖工具TensorFlow Fold是什麼?

2020-12-05 雷鋒網

2 月 7 日,谷歌通過博客正式發布了 TensorFlow Fold,該庫針對 TensorFlow 1.0 框架量身打造,可以幫助深度學習開發者根據不同結構的輸入數據建立動態的計算圖(Dynamic Computation Graphs),簡化了模型訓練階段對輸入數據的預處理過程,提升了系統的運行效率。

一般而言,大部分的深度學習項目都需要對模型的訓練數據進行一定程度的預處理。在這個過程中,各種不同規模和結構的輸入數據(例如不同解析度的圖片數據)將被裁剪成相同的維度和尺寸,然後被壓入棧,等待模型訓練階段的批處理流程。這一步驟之所以至關重要,是因為它使得 TensorFlow 等高性能的深度學習框架可以並行地針對不同的輸入數據運行同一個計算圖,加上當前的 GPU 和多核 CPU 普遍支持的 SIMD(Single Instruction Multiple Data,單指令多數據流) 等加速技術,大大提升了深度學習模型的運算速度。

然而,依然存在諸多問題域無法進行一般的預處理,因此模型必須針對不同的輸入數據建立不同的計算圖。例如自然語言理解中的解析樹(parse trees),原始碼中的抽象語法樹(abstract syntax trees)以及網頁中的 DOM 樹等等。在這些問題中,不同的輸入數據具有不同的計算圖,而且這些計算圖並不能劃分到同一個批處理流程中,因而也就無法實現對處理器、內存和高速緩存的最高效利用。

谷歌此次發布的 TensorFlow Fold 完美解決了這一問題。按照谷歌官方博客的介紹,TensorFlow Fold 庫會根據每個不同的輸入數據建立單獨的計算圖,因為各個輸入數據都可能具有各自不同的規模和結構,因此計算圖也應該各不相同。此後,動態批處理功能將自動組合這些計算圖,以實現在輸入數據內部和不同輸入數據之間的批處理操作,同時還可以通過插入一些附加指令來實現不同批處理操作之間的數據互通。更重要的是,相比於其他實現,TensorFlow Fold 將 CPU 的速度提高了 10 倍以上,GPU 的速度提高了 100 倍。

更全面的原理介紹詳見《DEEP LEARNING WITH DYNAMIC COMPUTATION GRAPHS》,論文連結如下:  https://openreview.net/pdf?id=ryrGawqex

上圖的動畫展示了一個利用動態批處理運行的遞歸神經網絡。相同顏色的操作被劃分到同一次批處理中,這使得 TensorFlow 能夠更高效地運行。其中Embed操作負責將單詞轉換為向量表示,FC(完全連接,Fully Connected)操作負責將單詞向量組合為短語的向量。該網絡最後的輸出是一個完整句子的向量表示。雖然這裡只展示了一個針對單一語句的解析樹,但實際上該網絡可以在任意形狀和大小的多個解析樹上並行地進行動態批處理。

目前,谷歌已經在 Github 平臺開源了 TensorFlow Fold 庫的原始碼。需要注意的是,目前 TensorFlow Fold 只在 Linux 平臺進行了測試,而且由於API接口的變化,TensorFlow Fold 目前也只適配了 TensorFlow 1.0 。另外,TensorFlow Fold 兼容 Python 2.7 和 3.3+ 版本。詳細的安裝和文檔說明請見 Github 頁面: https://github.com/tensorflow/fold 

來源:googleblog,雷鋒網編譯雷鋒網(公眾號:雷鋒網)雷鋒網

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    選自builtin作者:Vihar Kurama機器之心編譯參與:吳攀、杜偉谷歌的 Tensorflow 與 Facebook 的 PyTorch 一直是頗受社區歡迎的兩種深度學習框架。為了幫助開發這些架構,谷歌、Facebook 和 Uber 等科技巨頭已經為 Python 深度學習環境發布了多款框架,這讓人們可以更輕鬆地學習、構建和訓練不同類型的神經網絡。本文將詳細介紹和比較兩種流行的框架: TensorFlow 與 PyTorch。
  • 最熱門的深度學習框架TensorFlow入門必備書籍
    但進入機器學習和人工智慧領域並不是一件簡單的事情,目前市場上有許多大量的學習資源,許多開發者和想要進入的愛好者往往很難找到適合自己的發展路徑。其實,早在 2015 年底,谷歌就開源了內部使用的深度學習框架 TensorFlow 。眾多研究表明,Tensorflow 是研究深度學習的首選平臺。
  • 從框架優缺點說起,這是一份TensorFlow入門極簡教程
    機器之心在本文介紹了 PyTorch 和 Caffe 等深度學習框架的優缺點及 TensorFlow 基礎,包括靜態計算圖、張量、TensorBoard 可視化和模型參數的保存等。谷歌今日上線基於 TensorFlow 的機器學習速成課程(中文版)機器之心 GitHub 項目:從零開始用 TensorFlow 搭建卷積神經網絡教程 | 從零開始:TensorFlow 機器學習模型快速部署指南分布式 TensorFlow 入坑指南:從實例到代碼帶你玩轉多機器深度學習三天速成!
  • TensorFlow極速入門
    作者孟曉龍,2016年加入Qunar,目前在去哪兒網機票事業部擔任算法工程師。熱衷於深度學習技術的探索,對新事物有著強烈的好奇心。一、前言目前,深度學習已經廣泛應用於各個領域,比如圖像識別,圖形定位與檢測,語音識別,機器翻譯等等,對於這個神奇的領域,很多童鞋想要一探究竟,這裡拋磚引玉的簡單介紹下最火的深度學習開源框架 tensorflow。
  • 深度解讀TensorFlow,了解它的最新發展!
    在前段時間的TensorFlow峰會上,TensorFlow 發布了面向 JavaScript 開發者的全新機器學習框架 TensorFlow.js。  TensorFlow.js 是一個開源的用於開發機器學習項目的 WebGL-accelerated JavaScript 庫。
  • TensorFlow入門簡介,新手請看這裡!
    谷歌推出過一款AlphaGo人工智慧圍棋程序,其工作原理就是基於「深度學習」,並且是第一個擊敗人類職業選手的人工智慧程序。  TensorFlow支持算法  TensorFlow表達了高層次的機器學習計算,大大簡化了第一代系統(DistBelief),並且具備更好的靈活性和可延展性。
  • 深度學習筆記8:利用Tensorflow搭建神經網絡
    作者:魯偉 一個數據科學踐行者的學習日記。
  • Tensorflow 2.0 即將入場
    而就在即將到來的2019年,Tensorflow 2.0將正式入場,給暗流湧動的框架之爭再燃一把火。如果說兩代Tensorflow有什麼根本不同,那應該就是Tensorflow 2.0更注重使用的低門檻,旨在讓每個人都能應用機器學習技術。
  • 作為TensorFlow的底層語言,你會用C++構建深度神經網絡嗎?
    中文官方公眾號已於月初發布) 是以 C++為底層構建的,但絕大多數人都在 Python 上使用 TensorFlow 來開發自己的模型。很多人都知道 TensorFlow 的核心是構建在 C++之上的,但是這種深度學習框架的大多數功能只在 Python API 上才方便使用。
  • 從系統和代碼實現角度解析TensorFlow的內部實現原理|深度
    雷鋒網按:本文作者姚健,畢業於中科院計算所網絡數據實驗室,曾就職於360天眼實驗室,主要從事深度學習和增強學習相關研究工作。目前就職於騰訊MIG事業部,從事神經機器翻譯工作。摘要2015年11月9日,Google發布深度學習框架TensorFlow並宣布開源,並迅速得到廣泛關注,在圖形分類、音頻處理、推薦系統和自然語言處理等場景下都被大面積推廣。TensorFlow系統更新快速,官方文檔教程齊全,上手快速且簡單易用,支持Python和C++接口。
  • Tensorflow 2.0的這些新設計,你適應好了嗎?
    而就在即將到來的2019年,Tensorflow 2.0將正式入場,給暗流湧動的框架之爭再燃一把火。如果說兩代Tensorflow有什麼根本不同,那應該就是Tensorflow 2.0更注重使用的低門檻,旨在讓每個人都能應用機器學習技術。
  • Tensorflow 全網最全學習資料匯總之Tensorflow 的入門與安裝【2】
    《TensorFlow學習筆記1:入門》連結:http://www.jeyzhang.com/tensorflow-learning-notes.html本文與上一篇的行文思路基本一致,首先概括了TensorFlow的特性,然後介紹了graph、session、variable 等基本概念的含義,以具體代碼的形式針對每個概念給出了進一步的解釋
  • 玩轉TensorFlow?你需要知道這30功能
    網址:https://www.tensorflow.org/guide/keras12)Tensor2TensorTensor2Tensor 是一個深度學習模型和數據集的開源軟體庫,它可以讓深度學習變得更容易上手,促進機器學習的研究。
  • 教程| 如何用TensorFlow在安卓設備上實現深度學習推斷
    對於個人和公司來說,存在許多狀況是更希望在本地設備上做深度學習推斷的:想像一下當你在旅行途中沒有可靠的網際網路連結時,或是要處理傳輸數據到雲服務的隱私問題和延遲問題時。邊緣計算(Edge computing)是一種在物理上靠近數據生成的位置從而對數據進行處理和分析的方法,為解決這些問題提供了方案。
  • python應用之基於tensorflow的數據擬合:深度學習之預測入門篇
    實驗目的:1、了解python在深度學習領域的應用2、學習安裝python第三方依賴庫實驗環境:已正確安裝python3.5以及依賴庫tensorflow、matplotlib預測過程展示:1、應用領域python是一種高級面向對象的動態類型語言,具有開發高效,學習簡單的特點,主要應用於大數據、深度學習、
  • Tensorflow基礎教程15天之創建Tensor
    Tensor是Tensorflow中使用在計算圖中的最基本的數據單位,我們可以聲明Tensor為variable,或者為Tensor提供placeholer。但首先我們必須知道如何創建Tensor。Tensor準備工作當我們創建Tensor並定義其為Variable時,Tensorflow就計算圖中創建了相應圖形結構。需要指出的一點是,我們創建了Tensor,並不意味著已經將其傳入計算圖。
  • TensorFlow 攜手 NVIDIA,使用 TensorRT 優化 TensorFlow Serving...
    TensorFlow 在官方博客中對這項成果進行了發布,雷鋒網 AI 科技評論編譯如下。TensorFlow Serving 是應用於機器學習模型的靈活的高性能服務系統,而 NVIDIA TensorRT 則是一個用以實現高性能深度學習推理的平臺,將二者相結合後,用戶可以輕鬆地實現最佳性能的 GPU 推理。
  • 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
  • 程式設計師1小時完成深度學習Resnet,谷歌tensorflow多次圖像大賽冠軍
    plain而言精度更高在以往的學習之中,我們知道深度網絡隨著層數的增加,很容易造成「退化」和「梯度消失」的問題,訓練數據的過擬合。as tfimport tensorflow.contrib.slim as slimimport DATA_set.py#雙層殘差模塊def res_layer2d(input_tensor,kshape = [5,5],deph = 64,conv_stride = 1,padding='SAME'):data = input_tensor#模塊內部第一層卷積data = slim.conv2d
  • 基於TensorFlow2.0的中文深度學習開源書來了!GitHub趨勢日榜第一
    十三 發自 凹非寺 量子位 報導 | 公眾號 QbitAITensorFlow 2.0 發布已有一個半月之久,你會用了嗎?近日,一個叫做深度學習開源書的項目在火了。CPU安裝pip install tensorflow -UGPU安裝先自己安裝CUDA 10.0和cudnn,然後設置LD_LIBRARY_PATH。