谷歌正式釋出TensorFlow 1.5:終於支援CUDA 9和cuDNN 7

機器之心發表於2018-01-27
  • 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 float

  • splits)。

  • 由於 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 1.5:終於支援CUDA 9和cuDNN 7

相關文章