1. Windows上支持Python3.6。
2. 时空域去卷积(spatio temporal deconvolution.)增加了tf.layers.conv3d_transpose层。
3. 增加了tf.Session.make_callable( ),为多次运行一个相同步骤的运行提供了更低的overhead手段。
4.增加了ibverbs-based RDMA支持。
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 修复及其他改变
-
在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输出。