加载中...请稍后..

【TensorFlow1.2.0版发布】14大新功能,增加Intel MKL集成

发布日期:
2018-04-10
浏览量:
71408

        主要的功能和改进

        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输出。