【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代码,以进行快速检查和修改。