TensorFlow 1.0 重大功能及改善
XLA(實驗版):初始版本的XLA,針對TensorFlow圖(graph)的專用編譯器,面向CPU和GPU。
TensorFlow Debugger(tfdbg):命令行界面和API。
添加了新的python 3 docker圖像。
使pip包兼容pypi。TensorFlow現在可以通過 [pip install tensorflow] 命令安裝。
更改了幾個python API的調用方式,使其更類似 NumPy。
新的(實驗版)Java API。
Android:全新人物檢測+跟蹤演示實現——“Scalable Object Detection using DNN”(帶有額外的YOLO對象檢測器支持)。
Android:全新基於攝像頭的圖像風格轉換演示,使用了神經網絡藝術風格轉換技術。
重大 API 變動
為了幫助您升級現有的TensorFlow Python代碼以匹配以下API更改,我們准備了一個轉換腳本,詳見:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/compatibility
1、TensorFlow / models已經被移動到一個單獨的github庫。
2、除法和模運算符(/,//,%)現在匹配Python(flooring)語義。這也適用於 [tf.div] 和 [tf.mod]。要獲取基於強制整數截斷的行為,可以使用 [tf.truncatediv] 和 [tf.truncatemod]。
3、現在推薦使用 [tf.divide()] 作為除法函數。[tf.div()] 將保留,但它的語義不會回應 Python 3 或 [from future] 機制。
4、tf.reverse() 現在取軸的索引要反轉。例如 [tf.reverse(a,[True,False,True])] 現在必須寫為 [tf.reverse(a,[0,2])]。 [tf.reverse_v2()] 將保持到 TensorFlow 1.0 最終版。
5、[tf.mul,tf.sub ] 和 [tf.neg] 不再使用,改為 [tf.multiply],[tf.subtract] 和 [tf.negative]。
6、[tf.pack] 和 [tf.unpack] 棄用,改為 [tf.stack] 和 [tf.unstack]。
7、[TensorArray.pack] 和 [TensorArray.unpack] 在棄用過程中,將來計划啟用 [TensorArray.stack] 和 [TensorArray.unstack]。
以下Python函數的參數在引用特定域時,全部改為使用 [axis]。目前仍將保持舊的關鍵字參數的兼容性,但計划在 1.0 最終版完成前刪除。
1、tf.listdiff已重命名為tf.setdiff1d以匹配NumPy命名。
2、tf.inv已被重命名為tf.reciprocal(組件的倒數),以避免與np.inv的混淆,后者是矩陣求逆。
3、tf.round現在使用banker的舍入(round to even)語義來匹配NumPy。
4、tf.split現在以相反的順序並使用不同的關鍵字接受參數。我們現在將NumPy order 匹配為tf.split(value,num_or_size_splits,axis)。
5、tf.sparse_split現在采用相反順序的參數,並使用不同的關鍵字。我們現在將NumPy order 匹配為tf.sparse_split(sp_input,num_split,axis)。注意:我們暫時要求 tf.sparse_split 需要關鍵字參數。
6、tf.concat現在以相反的順序並使用不同的關鍵字接受參數。特別地,我們現在將NumPy order匹配為tf.concat(values,axis,name)。
7、默認情況下,tf.image.decode_jpeg使用更快的DCT方法,犧牲一點保真度來提高速度。通過指定屬性dct_method ='INTEGER_ACCURATE',可以恢復到舊版行為。
8、tf.complex_abs已從Python界面中刪除。 tf.abs支持復雜張量,現在應該使用 tf.abs。
9、Template.var_scope屬性重命名為.variable_scope
10、SyncReplicasOptimizer已刪除,SyncReplicasOptimizerV2重命名為SyncReplicasOptimizer。
11、tf.zeros_initializer()和tf.ones_initializer()現在返回一個必須用initializer參數調用的可調用值,在代碼中用tf.zeros_initializer()替換tf.zeros_initializer。
12、SparseTensor.shape已重命名為SparseTensor.dense_shape。與SparseTensorValue.shape相同。
13、分別替換tf.scalar_summary,tf.histogram_summary,tf.audio_summary,tf.image_summary與tf.summary.scalar, tf.summary.histogram, tf.summary.audio, tf.summary.image。新的摘要ops以名字而不是標簽作為它們的第一個參數,意味着摘要ops現在尊重TensorFlow名稱范圍。
14、使用tf.summary.FileWriter和tf.summary.FileWriterCache替換tf.train.SummaryWriter和tf.train.SummaryWriterCache。
15、從公共API中刪除RegisterShape。使用C++形狀函數注冊。
16、Python API 中的 _ref dtypes 已經棄用。
17、在C++ API(in tensorflow/cc)中,Input,Output等已經從tensorflow::ops命名空間移動到tensorflow。
18、將{softmax,sparse_softmax,sigmoid} _cross_entropy_with_logits的arg order更改為(labels,predictions),並強制使用已命名的args。
Bug 修改及其他變動
1、新的運算 op:parallel_stack。
2、為RecordReader/RecordWriter 增加了 tf io 壓縮選項常量。
3、添加了 sparse_column_with_vocabulary_file,指定將字符串特征轉換為ID的特征欄(feature column)。
4、添加了index_to_string_table,返回一個將索引映射到字符串的查找表。
5、添加string_to_index_table,返回一個將字符串與索引匹配的查找表。
6、添加ParallelForWithWorkerId函數。
7、添加string_to_index_table,返回一個將字符串與索引匹配的查找表。
8、支持從contrib / session_bundle中的v2中的檢查點文件恢復會話。
9、添加了tf.contrib.image.rotate函數,進行任意大小角度旋轉。
10、添加了tf.contrib.framework.filter_variables函數,過濾基於正則表達式的變量列表。
11、make_template()可以添加 custom_getter_ param。
112、添加了關於如何處理recursive_create_dir現有目錄的注釋。
13、添加了QR因式分解的操作。
14、Python API中的分割和mod現在使用flooring(Python)語義。
15、Android:預構建的libs現在每晚構建。
16、Android: TensorFlow 推理庫 cmake/gradle build 現在歸在 contrib/android/cmake下面
17、Android:更強大的會話初始化(Session initialization)代碼。
18、Android:當調試模式激活時,TF stats現在直接顯示在demo和日志中
19、Android:全新/更好的 README.md 文檔
20、saved_model可用作tf.saved_model。
21、Empty op 現在是有狀態的。
22、提高CPU上ASSIGN運算的scatter_update的速度。
23、更改reduce_join,使其處理reduction_indices的方式與其他reduce_ops相同。
24、將TensorForestEstimator移動到contrib/tensor_forest。
25、默認情況下啟用編譯器優化,並允許在configure中進行配置。
26、使指標權重 broadcasting 更加嚴格。
27、添加新的類似隊列的StagingArea和新運算 ops:stages 和 unstage。