TensorFlow 在6月16日发布最新版 1.2.0,公布了14大最新功能。新智元带来最新介绍,包括 API 的重要变化、contrib API的变化和Bug 修复及其他改变。附代码链接。

*主要的功能和改进

1. Windows上支持Python3.6。

2. 时空域去卷积(spatio temporal deconvolution.)增加了tf.layers.conv3d_transpose层。

3. 增加了tf.Session.make_callable( ),为多次运行一个相同步骤的运行提供了更低的overhead手段。

4.增加了ibverbs-based RDMA支持。(感谢来自雅虎的@junshi15 )。

5. RNNCell 对象现在从属于 tf.layers.Layer,在TensorFlow 1.1 发布时的严格描述已经被删除:一个RNNCell首次被使用,它自己缓存其范围(scope)。所有将来使用的RNNCell都会对来自相同的范围的中的变量进行重复使用。对于TensorFlow1.0.1及其以下版本中的RNNCell来说,这是一个突破性的改变。TensorFlow 1.1 版本已经经过检验,以保证旧的代码在新的语义下也能正确的工作。新版本会让RNNCell的使用变得更加灵活,但是,如果使用为TensorFlow 1.0.1 以下版本所写的代码,可能会导致一些微小的错误。例如,输入MultiRNNCell([lstm] * 5) 将会搭建起一个5层的LSTM堆栈,每一层共享相同的参数。为了让5层中每一层都有自己的参数,输入MultiRNNCell([LSTMCell(...) for _ in range(5)]).  如果不太确定,你可以先在TF 1.1中测试你的代码,保证没有任何错误后,再升级到TF 1.2。

6. TensorForest Estimator现在支持SavedModel输出。

7. 支持用户提供的ClusterSpec’s,并把其分配给所有的工作者,以确保能创建动态的TensorFlow集群。

8. TensorFlow C 数据库现在在Windows可用。

9. 发布了一个新的开源版本的TensorBoard。

10.在SavedModel中,SavedModel CLI工具可用于MetaGraph检查和执行。

11. 安卓发布的TensorFlow现在被推送到jcenter,方便用户更加简便的融入app中。更多细节,参见:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/README.md

12. RNNCells 的变量名,现在已经被重命名,以与Keras层保持一致。具体地,此前的变量名称“weights”和“biases“现在已经变为”kernel”和“bias”。如果你的旧的checkpoints中包含了这样的 RNN cells,这可能会导致反馈的不一致,此时你可以使用工具checkpoint_convert script来改变旧的checkpoints中的变量名字。

13.在1.0发布前,许多的 RNN 的功能和类别都在 tf.nn 命名空间中,后被移到tf.contrib.rnn 。现在,这些功能和类别都被移回核心命名空间。其中包括 RNNCell, LSTMCell, GRUCell, 和其他的一系列 cells。 原始的 tf.nn.rnn 功能现在变成了 tf.nn.static_rnn, 双向的数据和状态存储数据rnn功能现在有备移回tf.nn 命名区。

比较值得一提的例外有: EmbeddingWrapper, InputProjectionWrappeOutputProjectionWrapper,三者将会被逐渐搬到tf.contrib.rnn 的deprecation中。有一些无效的wrapper,需要经常进行替换,在rnn的预处理和后处理阶段,用所谓的embedding_lookup 或 layers.dense进行替换。在RNN的解码中,这一功能性将会被一个在tf.contrib.seq2seq.
中可用的API取代。

14.   Intel MKL 集成 (https://software.intel.com/en-us/articles/tensorflow-optimizations-on-modern-intel-architecture). Intel 开发了一系列经过优化的深度学习基元(primitives):除了矩阵乘法(matrix multiplication)和卷积以外,这些基本模块还包括:直接的批量卷积、池化(最大化、最小化和平均数)、激活(线性整流函数)ReLU、数据处理(多维移项、分解、合并、相加等)。

*弃用

TensorFlow 1.2 可能是我们最后一次使用 cuDNN 5.1 构建。从 TensorFlow 1.3 开始,我们将尝试使用 cuDNN 6.0 构建所有与构建的二进制文件。虽然我们会尽量保持源代码与 cuDNN 5.1 兼容,但不能保证。

*API 的重要变化

org.tensorflow.contrib.android.TensorFlowInferenceInterface 现在在可能的情况下会引起异常,并简化了方法签名。

*contrib API的变化

增加了 tf.contrib.util.create_example

 tf.contrib.image 增加了双线性插值。

为自定义seed control 的随机操作增加 tf.contrib.stateless

MultivariateNormalFullCovariance 添加到 contrib/distributions/

tensorflow/contrib/rnn 经历RNN cell变量重命名以与Keras层一致。具体来说,先前的变量名称“weights”和“biases”分别改为“kernel”和“bias”。对于包含 RNN cells等的旧检查点,这可能会导致向后不兼容,在这种情况下,你可以使用checkpoint_convert 脚本来转换旧检查点的变量名称。

在TensorFlow中添加了tf.contrib.kernel_methods 模块,包含对原始(显式)核方法的Ops和estimators。

 

*Bug 修复及其他改变

在Python,类型属性上的 Operation.get_attr 恢复了类型的 Python DType版本,以匹配预期的 get_attr文档,而不是protobuf枚举。

构建iOS库时,MIN_SDK版本更改为8.0。

修复了LIBXSMM集成。

使 decode_jpeg / decode_png / decode_gif 能够处理所有格式,因为用户经常尝试将图像解码为错误的类型。

改善了隐式 broadcasting lowering。

通过更快地重试过时的传输来提高GCS / Bigquery客户端的稳定性。

删除OpKernelConstruction :: op_def()作为最小化原型依赖关系的一部分。

添加了VectorLaplaceDiag分布。

Android demo不再需要libtensorflow_demo.so来运行(libtensorflow_inference.so仍然需要)。

添加了 categorical_column_with_vocabulary_file

在Session :: Run()调用中引入batching/unbatching张量的操作。

添加了 tf.log_sigmoid(x) = tf.log(tf.sigmoid(x)) = -tf.nn.softplus(-x).

将hooks lists更改为不可变元组,现在允许对相关参数进行任何迭代。 

引入了 TFDecorator。 

为语音特征生成添加了Mfcc操作。

改进了DirectSession :: Run()和错误检查。提供一个错误类型的值将同步引发INVALID_ARGUMENT错误,而不是异步地引发INTERNAL错误。在提供错误类型的张量时,取决于(未定义)行为的代码可能需要更新。

添加了unreduced NONE,并减少MEAN选项的损失。从其他 Reduction 常数删除“WEIGHTED_”前缀。

assertAllClose现在能处理dicts。

为HloInstructions添加了Gmock匹配器。

将变量名称添加到变量恢复的错误。

为音频特征生成添加了AudioSpectrogram 操作。

为损失添加了 reduction 参数。

tf.placeholder可以表示标量形状并且部分是已知的。

删除了estimateator_spec(mode)参数。

如果超过40次运行,TensorBoard将默认禁用所有运行。

删除了旧的doc生成器代码。

GCS文件系统集成现在支持域存储桶,例如gs://bucket.domain.com/path。

为输出文本添加了tf.summary.text到TensorBoard。

tfdbg的命令行接口的“run”命令现在支持按节点名称,操作类型和张量类型过滤张量。

tf.string_to_number现在支持int64和float64输出。

*贡献者名单

4F2E4A2E, Aaron Schumacher, Abhi Agg, admcrae, Adriano Carmezim, Adrià Arrufat,agramesh1, Akimitsu Seo, Alan Mosca, Alex Egg, Alex Rothberg, Alexander Heinecke,Alexander Matyasko, Alexandr Baranezky, Alexandre Caulier, Ali Siddiqui, Anand Venkat,Andrew Hundt, Androbin, Anmol Sharma, Arie, Arno Leist, Arron Cao, AuréLien Geron, Bairen Yi, Beomsu Kim, Carl Thomé, cfperez, Changming Sun, Corey Wharton, critiqjo, Dalei Li, Daniel,Rasmussen, Daniel Trebbien, DaríO Hereñú, David Eng, David Norman, David Y. Zhang, Davy Song, ddurham2, Deepak Subburam, Dmytro Kyrychuk, Dominic Rossi, Dominik SchlöSser, Dustin Tran,Eduardo Pinho, Egil Martinsson, Elliot Saba, Eric Bigelow, Erik Smistad, Evan Klitzke,Fabrizio Milo, Falcon Dai, Fei Gao, FloopCZ, Fung Lam, Gautam, GBLin5566, Greg Peatfield,Gu Wang, Guenther Schmuelling, Hans Pabst, Harun Gunaydin, Huaizheng, Ido Shamay, Ikaro Silva, Ilya Edrenkin, Immexxx, James Mishra, Jamie Cooke, Jay Young, Jayaram Bobba,Jianfei Wang, jinghua2, Joey Meyer, John Maidens, Jonghoon Jin, Julian Villella,Jun Kim, Jun Shi, Junwei Pan, jyegerlehner, Karan Desai, Karel Van De Plassche,Kb Sriram, KhabarlakKonstantin, Koan-Sin Tan, krivard, Kwotsin, Leandro Gracia Gil,Li Chen, Liangliang He, Louie Helm, lspvic, Luiz Henrique Soares, LáSzló Csomor, Mark Wong, Mathew Wicks, Matthew Rahtz, Maxwell Paul Brickner, Michael Hofmann, Miguel,Flores Ruiz De Eguino, MikeTam1021, Mortada Mehyar, Mycosynth, Namnamseo,Nate Harada, Neven Miculinic, Nghia Tran, Nick Lyu, Niranjan Hasabnis, Nishidha, Oleksii,Kuchaiev, Oyesh Mann Singh, Panmari, Patrick, Paul Van Eck, Piyush Chaudhary, Quim Llimona,Raingo, Richard Davies, Ruben Vereecken, Sahit Chintalapudi, Sam Abrahams, Santiago Castro,Scott Sievert, Sean O'Keefe, Sebastian Schlecht, Shane, Shubhankar Deshpande, Spencer Schaber,Sunyeop Lee, t13m, td2014, Thomas H. P. Andersen, Toby Petty, Umang Mehta,Vadim Markovtsev, Valentin Iovene, Vincent Zhao, Vit Stepanovs, Vivek Rane, Vu Pham, wannabesrevenge,weipingpku, wuhaixutab, wydwww, Xiang Gao, Xiaolin Lin, xiaoyaozhuzi, Yaroslav Bulatov, Yi Liu,Yoshihiro Sugi, Yuan (Terry) Tang, Yuming Wang, Yuxin Wu, Zader Zheng, Zhaojun Zhang, zhengjiajin, ZhipengShen, Ziming Dong, zjj2wry

*下载

源代码:https://github.com/tensorflow/tensorflow/archive/v1.2.0.zip

开源地址:https://github.com/tensorflow/tensorflow/releases