【新智元导读】TensorFlow 今天发布最新版 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, InputProjectionWrapper 和 OutputProjectionWrapper,三者将会被逐渐搬到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 修复及其他改变
贡献者名单
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