來源 | TensorFlow 公眾號
TensorFlow 1.11.0 版本正式釋出啦!
本文將為大家介紹此版本的一些重大改變、主要功能和改進、Bug 修復以及其他變化。
主要特點和改進
Nvidia GPU:
- 現在(根據 TensorFlow 1.11)預構建的二進位制檔案是針對 cuDNN 7.2 和 TensorRT 4 構建的。請檢視升級的安裝指南:Installing TensorFlow on Ubuntu(www.tensorflow.org/install/ins…
Google Cloud TPU:
- 針對 Google Cloud TPU 上的 Keras 的實驗性 tf.data 整合
- 在 Google Cloud TPU 上對 Eager Execution 進行試驗性/預覽支援
分散式策略:
- 為 tf.keras 新增 multi-GPU 分散式策略支援。fit,evaluate,predict 開始支援分散式
- 在 Estimator 中新增 multi-worker 的分散式策略支援和獨立客戶端支援。 檢視 [README] (github.com/tensorflow/…) 瞭解更多細節
新增 C, C++, 和 Python 函式來查詢核心
重大改變
Keras:
- tf.keras 的 RandomUniform,RandomNormal 和 TruncatedNormal 初始化程式的預設值已更改,以保證與外部 Keras 中的預設值相匹配
- 重大改變:執行 Sequential 模型的 model.get_config() 方法,現在返回 config dictionary(與其他模型例項保持一致),不再返回基礎層的配置列表
Bug 修復以及其他變化
C++:
- 更改了 SessionFactory::NewSession 的簽名,使其能夠對錯誤給出詳細的資訊
tf.data:
- tf.contrib.data.make_csv_dataset() 去除了 num_parallel_parser_calls 引數
- 如果引數沒有匹配的檔案,則 tf.data.Dataset.list_files() 在初始化時會報異常
- 為了清晰起見,將 BigTable 類別重新命名為 BigtableTable
- 記錄 Cloud Bigtable API 的使用情況
- 新增 tf.contrib.data.reduce_dataset,可用於將資料集減少到單個元素
- 泛化 tf.contrib.data.sliding_window_batch
INC:
- 對三角求解進行了執行上的改進
tf.contrib:
-
為 tf.keras.layers.LocallyConnected2D 和 tf.keras.layers.LocallyConnected1D 新增了 implementation 引數。 新模式(implementation = 2)在執行前向傳播時以單個密集矩陣的乘積來進行,這在某些場景下會帶來顯著加速(但在某些場景下可能會導致效能降低 - 請參閱 docstring)。 該選項還允許使用 padding = same
-
新增了新文件來說明 tf.fill 和 tf.constant 之間差異
-
實驗性地新增了 IndexedDatasets
-
使用 lite proto 執行時新增選擇性註冊目標
-
為 TensorFlow Lite Java 新增簡單的 Tensor 和 DataType 類別
-
新增對 uint32 和 uint64 的 bitcasting 的支援
-
新增了一個 Estimator 子類,該子類可以從SavedModel(SavedModelEstimator)建立
-
新增葉形索引模式作為引數
-
從 tf.contrib.image.transform 的輸入中允許不同的輸出形狀
-
將 StackedRNNCell 的 state_size 順序更改為自然順序。為保持現有行為,使用者可以在構造 StackedRNNCell 時新增 reverse_state_order = True
-
棄用 self.test_session(),以支援 self.session() 或 self.cached_session()
-
直接匯入 tensor.proto.h(傳遞匯入將很快從 tensor.h 中刪除)
-
Estimator.train() 現在支援開箱即用的 tf.contrib.summary。* 每次呼叫.train() 現在都會建立一個單獨的 tfevents 檔案,不再重新使用共享檔案
-
修復 FTRL 優化器 L2 的收縮效能:L2 收縮項的梯度不應該在累加器中終止
-
修復 toco 在 Windows 上編譯/執行的 bug
-
新增了 GoogleZoneProvider 類別,以檢測 TensorFlow 程式的各部分在 Google Cloud Engine 執行的位置
-
現在可以安全地在 nullptr 上呼叫任何 C API 的 TF_Delete * 函式
-
將 Android 上的一些錯誤資訊記錄到日誌
-
匹配 TFLite 中的 FakeQuant 數字,以提高 TFLite 量化推理模型的準確性
-
GCS 檔案系統的可選儲存桶位置檢查
-
StringSplitOp 和 StringSplitV2Op 的效能得到加強
-
正規表示式替換操作的效能得到提高
-
如果 if.write() 失敗,TFRecordWriter 現在會報錯
-
TPU:TPUClusterResolvers 叢集解析器將會提供更詳細有用的錯誤訊息
-
不推薦使用 SavedModelBuilder 方法新增 MetaGraphs 的 legacy_init_op 引數。 請改用等效的 main_op 引數。我們現在在構建 SavedModel 時明確會檢查單個 main_op 或 legacy_init_op,而在以前對 main_op 的檢查僅在載入時進行
-
現在可以在 RunConfig 中配置用於 Estimator 培訓的協議
-
三角數的求解效能得到提高
-
將 TF 和 Keras 的 RNN 單元的 API 進行了統一。為 Keras 和 TF 的 RNN 單元新增了新的 get_initial_state() 方法,這個方法未來將替代現有的 zero_state() 方法
-
更新了 Keras 中變數的初始化
-
在 tensorflow / contrib 中更新 “constrained_optimization”
-
提升樹演算法:新增修剪模式
-
tf.train.Checkpoint 預設情況下不刪除舊的檢查點
-
tfdbg:除錯時,快取的 Tensor 資料所佔用的磁碟空間上限為 100 GB。 允許新增環境變數 TFDBG_DISK_BYTES_LIMIT 來調整此上限值
感謝我們的貢獻者
本次的釋出離不開 Google 以下許多同仁的貢獻: Aapeli, adoda, Ag Ramesh, Amogh Mannekote, Andrew Gibiansky, Andy Craze, Anirudh Koul, Aurelien Geron, Avijit, Avijit-Nervana, Ben, Benjamin H. Myara, bhack, Brett Koonce,張天啟, 張曉飛......
最後,請大家點選 “www.tensorflowers.cn/t/6838”,檢視完…