技术开发 频道

TensorFlow1.9热风刚过,2.0版又将来袭!

  【IT168 技术】TensorFlow是快速开发神经网络的一般框架,是谷歌对于机器学习和数据科学领域的一大重要贡献。TensorFlow刚被推出,就因为其强大的易用性,在领域内被广泛采用并迅速成为深度学习的通用平台。

  前些日子谷歌刚刚发布完TensorFlow1.9,并带来了一大批的性能更新。近日消息,TensorFlow2.0预计将在今年年末推出首个测试版。TensorFlow1.9的热风刚过,大家又将期待的目光锁定在TensorFlow2.0。这里是一些TensorFlow2.0的预计性能更新。

  新版本:TensorFlow2.0的预计性能改进

  TensorFlow2.0除了解决一部分性能问题,其构建者还将进一步纠正兼容性和连续性的问题,将用户对编程模型的期望与TensorFlow更好地结合起来。TensorFlow2.0的核心功能预计为“Eager Execution”环境。Eager Execution于2017年由Google Brain推出, 是一种命令式的编程环境,可以在不构建图表的情况下迅速评估操作,目的在于使架构更易于学习和使用。

  TensorFlow2.0预计性能更新:

  •   扩展对更多平台和语言的支持。

  •   通过交换格式的标准化和 API 的一致性,改进平台和语言组件之间的兼容性。

  •   删除已弃用的 API,以减少用户之间的混淆。

  TensorFlow2.0也被计划对升级进行一系列的设计审查。为了简化过度(transition),开发人员将创建一个转换工具,该工具将更新Python代码以使用与TensorFlow 2.0兼容的API,或者在无法自动进行转换的情况下发出警告。另外,TensorFlow 2.0还提供了一个纠正错误并进行改进的机会,而这些改进在语义版本控制下是禁止的。

  新消息称,TensorFlow2.0的1.X系列并不会开发新功能,但2.0发布后的一年内,1.X系统将会有安全补丁。

  介绍完了预将发布的新版本,现在让我们简单捋顺一下TensorFlow机器学习架构的更新之路。

  TensorFlow1.9的主要性能更新

  •   更新文档tf.keras:基于新Keras的入门和程序员指南页面。

  •   为Keras 2.1.6 API更新tf.keras。

  •   添加tf.keras.layers.CuDNNGRU和tf.keras.layers.CuDNNLSTM层。

  •   将核心功能列的支持和损失添加到梯度boosted tree估计器中。

  •   Python接口用于TFLite优化转换器已扩展,命令行界面(toco,tflite_convert)再次包括在标准pip安装中。

  •   空变量范围,用variable_scope(tf.get_variable_scope(), …)替换variable_scope(”, …)。

  •   用于构建自定义操作的标头从site-packages / external移至site-packages / tensorflow / include / external。

  TensorFlow1.8的主要性能更新

  •   能够将数据预取到GPU内存。可以加快预先知道数据GPU操作的速度,数据可以同时被复制到GPU中。

  •   支持Cloud TPU的第三代流水线设置,提高了性能和可用性。TPU是Google Cloud专用的硬件单元,可以加速TensorFlow性能。

  •   添加了 tf.contrib。{proto,rpc}以允许通用的原型解析和 RPC 通信。

  TensorFlow1.7的主要性能更新

  •   从 contrib 中移除 Eager 模式,使用 tf.enable_eager_execution()。

  •   Graph 重写了仿真定点量化器,与TensorFlow Lite 兼容,由新的tf.contrib.quantize 包提供支持。

  •   使用 tf.custom_gradient 轻松定制梯度计算。

  •   TensorBoard 调试器插件,即 TensorFlow 调试器( tfdbg )的图形用户界面(GraphicalUser Interface, GUI),推出alpha 版本。

  •   利用新的 tf.contrib.data.SqlDataset,支持将 sqlite 数据库作为 Dataset进行读取。

  •   Distributed Mutex / CriticalSection 被添加至 tf.contrib.framework.CriticalSection。

  •   tf.regex_replace 能更好支持文本处理。

  •   tf.contrib.data.bucket_by_sequence_length 支持简单高效的序列输入。

  TensorFlow1.6的主要性能更新

  •   针对 CUDA 9.0 和 cuDNN 7 预构建二进制文件。

  •   编译的二进制文件使用 AVX 指令,但会破坏旧版CPU上的TF。

  •   针对非插槽变量的新优化器内部API。

  •   tf.estimator.{FinalExporter,LatestExporter} 可导出被剥离的 SavedModels ,这增加了 SavedModels 的前向兼容性;FFT 支持添加到 XLA CPU/GPU 。

  •   Android TF可以在兼容的 Tegra 设备上使用 CUDA 加速来构建。

  •   增加了 Getting Started 的第二个版本,主要针对机器学习新手。

  •   阐明了 resize_images.align_corners 参数文档。

  •   增加了 TPU 文档。

  •   增加了客户端节流。

  •   在 FileSystem 接口上增加了 FlushCaches() 方法,用于 GscFileSystem 实现。

  TensorFlow1.5的主要性能更新

  •   Eager Execution:预览版已提供下载。

  •   TensorFlow Lite:dev 预览版已提供下载。

  •   支持 CUDA 9 和 cuDNN 7。

  •   加速线性代数(XLA):

  •   将 complex64 支持添加到 XLA 编译器。

  •   将 bfloat 支持添加到 XLA 基础设施。

  •   使 ClusterSpec 传播与 XLA 设备一起工作。

  •   使用决定性执行程序来生成XLA图。

  •   tf.contrib模块增加了很多附加功能,例如:tf.contrib.bayesflow.layers概率神经网络(PNN)的实现。

  TensorFlow1.4的主要性能更新

  •   tf.keras 成为核心 TensorFlow API 的一部分。提供TensorFlow Keras API的目的主要是为了向后兼容,可以更容易的将Keras移植到TensorFlow。

  •   tf.data 成为核心 TensorFlow API 的一部分。

  •   train_and_evaluate功能提供了一种在集群中以分布式方式运行TensorFlow Estimator(用于自动配置公共模型参数)的简单方法。

  •   添加 tf.spectral.dct 用于计算 DCT-II。

  •   TensorFlow的内置调试系统允许在调试器的命令行中执行任意Python代码,以进行快速检查和修改。

0
相关文章