谷歌正式發布TensorFlow 1.5,究竟提升了哪些功能?

2020-12-18 機器之心Pro

昨天,谷歌在 GitHub 上正式發布了 TensorFlow 的最新版本 1.5.0,並開源了其代碼。支持 CUDA 9 和 cuDNN 7 被認為是本次更新的最重要部分。機器之心對這次更新的重大改變以及主要功能和提升進行了編譯介紹,原文請見文中連結。

GitHub 地址:https://github.com/tensorflow/tensorflow/releases/tag/v1.5.0原始碼(zip):https://github.com/tensorflow/tensorflow/archive/v1.5.0.zip原始碼(tar.gz):https://github.com/tensorflow/tensorflow/archive/v1.5.0.tar.gz

1.5.0 正式版

重大更新

預構建的二進位文件現在是針對 CUDA 9 和 cuDNN 7 構建的。從版本 1.6 開始,我們的預構建二進位文件將使用 AVX 指令。這也許會破壞較舊 CPUs 上的 TF。

主要功能和提升

Eager execution:預覽版現在可用。TensorFlow Lite:dev 預覽版現在可用。支持 CUDA 9 和 cuDNN 7加速線性代數(XLA):

添加 complex64 支持到 XLA 編譯器。bfloat 支持現已添加到 XLA 架構。使 XLA 和 XLA 一起工作。通過決定性執行程序來生成 XLA 圖。

tf.contrib:

tf.contrib.distributions:

添加 tf.contrib.distributions.Autoregressive。使 tf.contrib.distributions QuadratureCompound 類支持批處理。從參數中推斷 tf.contrib.distributions.RelaxedOneHotCategorical dtype。通過 quadrature_grid_and_prob vs quadrature_degree 使 tf.contrib.distributions 正交族參數化。添加 auto_correlation 到 tf.contrib.distributions。

添加 tf.contrib.bayesflow.layers,一個概率(神經)層的集合。添加 tf.contrib.bayesflow.halton_sequence。添加 tf.contrib.data.make_saveable_from_iterator。添加 tf.contrib.data.shuffle_and_repeat。添加新的自定義轉換: tf.contrib.data.scan()。tf.contrib.distributions.bijectors:

添加 tf.contrib.distributions.bijectors.MaskedAutoregressiveFlow。添加 tf.contrib.distributions.bijectors.Permute。添加 tf.contrib.distributions.bijectors.Gumbel。添加 tf.contrib.distributions.bijectors.Reshape。支持 Reshape bijector 中的 shape 推理(即,包含-1 的 shape)。

添加 streaming_precision_recall_at_equal_thresholds,一種計算流式精確度和時間、空間複雜度為 O(num_thresholds + size of predictions) 的調用的方法。更改 RunConfig 默認行為,不設置隨機種子,使隨機行為在分布式工作器上獨立地隨機。我們期待這可以普遍提高訓練表現。依賴決定論的模型應明確設置一個隨機種子。通過 absl.flags 替換 tf.flags 的實現。在 fp16 GEMM 中為 CUBLAS_TENSOR_OP_MATH 添加支持。在 NVIDIA Tegra 計算卡上為 CUDA 添加支持。

Bug 修復與其他更新

文檔更新:

明確你只能在 64 位機上安裝 TensorFlow。添加一個短文件解釋 Estimators 如何保存檢查點。為由 tf2xla 橋支持的操作添加文檔。修改 SpaceToDepth 和 DepthToSpace 文件中的小的書寫錯誤。更新 mfcc_mel_filterbank.h 和 mfcc.h 中的文檔命令,說明輸入域是幅度譜的平方,權重是在線性幅度譜(輸入的 sqrt)上完成的。修復 tf.distributions.bijectors.Bijector 中的文檔字符串書寫錯誤。tf.assert_equal 不再引發 ValueError。它現在引發 InvalidArgumentError,如文檔所述。更新「開始」文件和 API 介紹。

谷歌雲存儲 (GCS):

為 GCS 客戶端添加用戶空間 DNS 緩存。為 GCS 文件系統自定義請求超時。優化 GCS 的文件系統緩存。

Bug 修復

修復之前出現的整數變量分區後變成錯誤的 shape 的 bug。修復 Adadelta 的 CPU 和 GPU 實現的準確度 bug。修復當導入到 scope 時,import_meta_graph 處理分區變量時出現的 bug。警告:在以非空 import_scope 變量應用 import_meta_graph 之後,這可能會破壞帶已保存分區變量圖的加載中的檢查點。修復離線 debugger 中阻止查看事件的 bug。添加 WorkerService.DeleteWorkerSession 方法到 gRPC 接口,修復內存洩漏。確保你的主伺服器和輔助伺服器在相同版本的 TensorFlow 上運行,以避免兼容性問題。修復 BlockLSTM cell 的 peephole 實現中的 bug。通過重寫 log_det_jacobian 的 dtype 以在 TransformedDistribution 中匹配 log_prob。確保 tf.distributions.Multinomial 不會在 log_prob 中下溢。在此之前,一個整數變量的所有分區會以非分區變量的 shape 進行初始化;經過修復之後,可以正確地初始化。

其它

添加必要的 shape 直到支持 bfloat16。添加一種運行 ops 的方式,在 MonitoredSession 中使用階躍函數。添加 DenseFlipout 概率層(probabilistic layer)。添加一種新的 flag:ignore_live_threads,可用於訓練過程。如果將其設為 True,在成功完成訓練之後,它會在拆除基礎建設時忽略仍在運行的線程,而不會返回 RuntimeError。重新標準化 DenseVariational,以作為其它概率層的更簡化模板。tf.data 現在在數據集元素中支持 tf.SparseTensor。可以進行遍歷 Tensor 的計算。允許 SparseSegmentReduction ops 擁有丟失的 segment IDs。修改自定義導出策略以包含多維稀疏浮點數分裂(multidimensional sparse floatsplits)。由於 GPU 和 cuDNNv6 的支持,Conv2D、Conv2DBackpropInput、Conv2DBackpropFilter 現在支持任意的擴張。Estimator 現在支持 Dataset:input_fn 可以返回 Dataset 而不是 Tensors。添加 Revblock,一個可逆殘差層的節省內存的實現。減少 BFCAllocator 的內部碎片。添加 cross_entropy 和 kl_divergence 到 tf.distributions.Distribution 中。添加 tf.nn.softmax_cross_entropy_with_logits_v2,以允許標籤的反向傳播。GPU 後端現在使用 ptxas 以編譯生成的 PTX。BufferAssignment 的協議緩存轉儲(protocol buffer dump)現在已確定。改變 embedding op 以利用 DynamicStitch 的並行版本。添加對稀疏多維特徵列(sparse multidimensional feature columns)的支持。加速僅有一個值的稀疏浮點數列(sparse float columns)的案例。允許稀疏浮點數分裂(sparse float splits)以支持多價特徵列(multivalent feature columns)。添加 quantile 到 tf.distributions.TransformedDistribution。在 GPU 上添加對 tf.depth_to_space 的 NCHW_VECT_C 支持。在 GPU 上添加對 tf.space_to_depth 的 NCHW_VECT_C 支持。

API 變化

將 SqueezeDims 屬性在 C++ API 中重命名為 Axis,作為 Squeeze op。Stream::BlockHostUntilDone 返回 Status,而不是布爾值。Minor refactor:將 stats 文件從 stochastic 移動到 common 並刪除 stochastic。

相關焦點

  • Tensorflow for Java 1.5 發布
    Tensorflow for Java 1.5 發布了。Tensorflow 1.5 更新內容請點此查看。
  • TensorFlow 這麼厲害了麼?
    2017 年 02 月,Tensorflow 正式發布了 1.0.0 版本,同時也標誌著穩定版本的誕生。這次大會上,官方也強調將針對各種行動裝置開發一系列的工具包,進一步優化性能,並提升隱私安全。在新增的 TF lite 擴展庫方面,則是新增更多圖像和語言 API,加入了 Android Studio 集成,並完善代碼生成等功能。
  • TensorFlow發布JavaScript開發者的機器學習框架TensorFlow.js
    去年的 TensorFlow 開發者大會上,該框架正式升級到了 1.0 版本,逐漸成為最流行的深度學習框架。今年,TensorFlow 發布了面向 JavaScript 開發者的全新機器學習框架 TensorFlow.js。
  • TensorFlow 2.0正式版官宣!深度集成Keras
    新智元報導來源:medium、GitHub編輯:小芹、大明【新智元導讀】TensorFlow 2.0正式版終於發布了!深度集成Keras,更簡單、更易用,GPU訓練性能提升。這是一個革命性的新版本,歡迎來到 TensorFlow 2.0!
  • TensorFlow再填新功能!谷歌宣布推出TensorFlow.Text
    谷歌發布TensorFlow優化新功能TF.Text庫,可對語言文本AI模型進行周期性預處理,大大節約了AI開發者對文本模型的訓練時間,簡化訓練流程。 TensorFlow再填新功能! 谷歌宣布推出TensorFlow.Text,這是一個利用TensorFlow對語言文本模型進行預處理的庫。
  • 玩轉TensorFlow?你需要知道這30功能
    與其它一些更新的框架相比,TensorFlow 的功能並不是很多。我對這個產品投入全心的思考並寫下了我的想法,下面是一條接一條不斷擴展的清單。對此,你準備好了嗎?網址是:https://www.tensorflow.org/tfx/transform/?hl=zh-cn
  • 深度解讀TensorFlow,了解它的最新發展!
    Tensorboard是tensorflow內置的一個可視化工具,它通過將tensorflow程序輸出的日誌文件的信息可視化,使得tensorflow程序的理解、調試和優化更加簡單高效。Tensorboard的可視化依賴於tensorflow程序運行輸出的日誌文件,因而tensorboard和tensorflow程序在不同的進程中運行。
  • 谷歌TensorFlow成為最受歡迎Python項目
    TensorFlow眾所周知,最初是2015年11月由谷歌開源的人工智慧系統,屬於谷歌大腦第二代機器學習系統。TensorFlow是一個開源軟體庫,用於各種感知和語言理解人物的機器學習,在谷歌的語音識別、Gmail、谷歌相冊和搜索等多款產品中都有應用。
  • tensorflow安裝教程
    tensorflow是谷歌開源的人工智慧庫,有最完善的生態支持。是進行人工智慧領域開發和科研的必備工具。本文在windows10下,藉助anaconda建立成功進入tf2.0環境conda activate tf2.0安裝tensorflow2.0 pip install tensorflow==2.0.0-beta1下載的東西挺多,多等一會,最後成功如下命令行運行python,執行import
  • 資源| TensorFlow版本號升至1.0,正式版即將到來
    現在,TensorFlow 的一歲生日之後兩個月,TensorFlow 社區終於決定將 TensorFlow 的版本號升至 1.x,並也已於昨日發布了 TensorFlow 1.0.0-alpha,其新增了實驗性的 Java API,並且提升了對 Android 的支持。
  • 谷歌發布 TensorFlow 1.6.0,針對 CUDA 9.0 和 cuDNN 7 預構建二...
    雷鋒網(公眾號:雷鋒網) AI 研習社消息:日前,,谷歌發布 TensorFlow 1.6.0 正式版,帶來了多項更新和優化,雷鋒網 AI 研習社將谷歌官方介紹編譯如下:RetryingFileSystem::FlushCaches() 可調用基礎 FileSystem 的FlushCahes();將 auto_correlation 添加到了 distribution;增加了 tf.contrib.distributions.Autoregressive;增加了 SeparableConv1D
  • 谷歌TensorFlow 2.2.0正式發布:道別Python 2,擁抱Python 3
    TensorFlow 2.2.0 正式發布了,該版本終止了對 Python 2 的支持。現在,新的 TensorFlow Docker 鏡像版本僅提供 Python 3。  主要特性和改進  · 將字符串張量的標量類型從 std::string 替換為 tensorflow::tstring  · TF 2 的新 Profiler
  • tensorflow
    tensorflow 文章
  • 什麼是TensorFlow,TensorFlow教程
    DistBelief的原始碼經過修改,被做成了一個更好的基於應用程式的庫,2015年,它被稱為tensorflow。TensorFlow是什麼?TensorFlow是一個強大的面向數據流的機器學習庫,由谷歌的Brain Team創建,於2015年開源。它被設計成易於使用和廣泛應用於數字和神經網絡的問題以及其他領域。
  • TensorFlow2.1正式版上線:最後一次支持Python2,進一步支持TPU
    去年 10 月,谷歌才發布了 TensorFlow 2.0 正式版。時隔三個月後,昨日官方發布了 TensorFlow 2.1,本次版本更新帶了了多項新特性、功能改進和 bug 修復。也就是說,如果使用 pip install tensorflow,則版本默認為是 gpu 版本(原始的 tensorflow-gpu 版本依然存在)。當然,不管有沒有英偉達版本的 GPU,tensorflow 依然能夠運行。如果需要使用 CPU 版本,用戶的安裝命令應該為:pip install tensorflow-cpu。
  • TensorFlow極速入門
    一、前言目前,深度學習已經廣泛應用於各個領域,比如圖像識別,圖形定位與檢測,語音識別,機器翻譯等等,對於這個神奇的領域,很多童鞋想要一探究竟,這裡拋磚引玉的簡單介紹下最火的深度學習開源框架 tensorflow。
  • tensorflow極速入門
    一、前言目前,深度學習已經廣泛應用於各個領域,比如圖像識別,圖形定位與檢測,語音識別,機器翻譯等等,對於這個神奇的領域,很多童鞋想要一探究竟,這裡拋磚引玉的簡單介紹下最火的深度學習開源框架 tensorflow。本教程不是 cookbook,所以不會將所有的東西都事無巨細的講到,所有的示例都將使用 python。那麼本篇教程會講到什麼?
  • 谷歌發布TensorFlow Lattice:得益於先驗知識,提升模型泛化能力
    雷鋒網 AI科技評論消息,近日,谷歌科學家發布TensorFlow Lattice,這是一套預建的TensorFlow Estimators,易於使用,它相當於是TensorFlow運算符,用來構建點陣模型(lattice model)。
  • 谷歌TensorFlow 2.2.0正式發布 生成器支持動態形狀
    TensorFlow 2.2.0 正式發布了,該版本終止了對 Python 2 的支持。現在,新的 TensorFlow Docker 鏡像版本僅提供 Python 3。   主要特性和改進   · 將字符串張量的標量類型從 std::string 替換為 tensorflow::tstring   · TF 2 的新 Profiler,用於 CPU/GPU/TPU。它提供設備和主機性能分析,包括輸入管道和 TF Ops。
  • TensorFlow 2.0 Alpha 版來了!吳恩達配套課程同步上線
    自今年 1 月份谷歌放出 TensorFlow 2.0 開發者預覽版,開發者們如今終於迎來了萬眾期待的 TensorFlow 2.0 Alpha 版的正式發布。也許是為了呼應谷歌此前將 TensorFlow 2.0 稱作重要的「裡程碑」,TensorFlow 的 Logo 也從過去的三維積木狀變成了扁平化風格的「T」和「F」字母拼接。