终于来了,TensorFlow 新增官方 Windows 支持

云头条mp 浏览次数: 2016-11-30 21:32

“本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载”。 选自Google Developers Blog 机器之心编译|参与:'...

“本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载”。

选自Google Developers Blog

机器之心编译|参与:李泽南

昨日,Google Brain 工程师团队宣布在 TensorFlow 0.12 中加入初步的 Windows 支持。

TensorFlow 宣布开源刚刚过去一年。在谷歌的支持下,TensorFlow 已成为 GitHub 上最受欢迎的机器学习开源项目。同时,谷歌也在 TensorFlow 框架中进行过各类研究、开源了其中一些项目,这些研究涉及到自然语言处理、机器翻译、图像描述、图像分类等等。

谷歌在开发者博客上写到:「原生的 Windows 版 TensorFlow 是自开源以来,我们工作的重中之重。尽管 Windows 的用户们已经可以在 Docker 容器中运行 TensorFlow 了,我们仍然希望提供更加完整的原生体验,包括对于 GPU 的支持。」

随着 TensorFlow r0.12 版的发布,这一开源软件库现已支持 Windows7、10 和 Server 2016。同时,这一新版本可以让用户在 TensorFlow 训练中得到 CUDA 8 的 GPU 加速。我们已将新版本在 PyPI 中封装成型。现在你可以使用命令 C:> pip install tensorflow 安装 TensorFlow 了。

GPU 支持的命令:C:> pip install tensorflow-gpu

有关 TensorFlow Windows 支持的更多细节请阅读 r0.12 的版本注释。

pypi 地址:https://pypi.python.org/pypi/tensorflow

TensorFlow Release 0.12.0 地址:https://github.com/tensorflow/tensorflow/releases

主要特性和提升:

TensorFlow 现在可以在 Microsoft Windows 中开发和运行了(已知在 Windows 10、Windows 7、Windows Server 2016 中运行良好)。支持的语言包括 Python(通过 pip package)和 C++。支持 CUDA 8.0 和 cuDNN5.1 GPU 加速。目前已知的限制有:现在无法加载自定义指令库(custom op library)。不支持 CGS 和 HDFS 文件系统。

下列指令无法实现:DepthwiseConv2dNative, DepthwiseConv2dNativeBackpropFilter, DepthwiseConv2dNativeBackpropInput, Dequantize, Digamma, Erf, Erfc, Igamma, Igammac, Lgamma, Polygamma, QuantizeAndDequantize, QuantizedAvgPool, QuantizedBatchNomWithGlobalNormalization, QuantizedBiasAdd, QuantizedConcat, QuantizedConv2D, QuantizedMatmul, QuantizedMaxPool, QuantizeDownAndShrinkRange, QuantizedRelu, QuantizedRelu6, QuantizedReshape, QuantizeV2, RequantizationRange, 和 Requantize。

Go:Go 中的实验 API 可以创建和执行图表(https://godoc.org/github.com/tensorflow/tensorflow/tensorflow/go)

新的 checkpoint 格式现在是 tf.train.Saver 中的默认值。旧 V1 chekpoint 仍然可读; 由 write_version 参数控制,tf.train.Saver 现在默认写入新的 V2 格式。这种方式显著降低了恢复期间所需的内存峰值,同时降低了延迟。

为无矩阵(迭代)解算器增加了新的库,支持 tensorflow/contrib/solvers 中的线性方程、线性最小二乘法,特征值和奇异值。最初的版本具有 lanczos 双对角化(bidiagonalization)、共轭梯度和 CGLS。

为 matrix_solve_ls 和 self_adjoint_eig 增加了梯度。

对原有内容进行了大量清理,为具有 C ++梯度的运算添加二阶梯度,并改进现有梯度,使大多数运算现在可以多次微分。

增加了常微分方程的求解器:tf.contrib.integrate.odeint。

用于具有命名轴的张量的新 contrib 模块,tf.contrib.labeled_tensor。

TensorBoard 中嵌入(embedding)的可视化。

主要 API 改进

BusAdjacency 枚举被协议缓冲 DeviceLocality 代替。总线索引现在从 1 而不是 0 开始,同时,使用 bus_id==0,之前为 BUS_ANY。

Env::FileExists 和 FileSystem::FileExists 现在返回 tensorflow::Status 而不是一个 bool。任何此函数的调用者都可以通过向调用添加.ok()将返回转换为 bool。

C API:TF_SessionWithGraph 类型更名为 TF_Session,其在 TensorFlow 的绑定语言中成为首选。原来的 TF_Session 已更名为 TF_DeprecatedSession。

C API: TF_Port 被更名为 TF_Output。

C API: 调用者保留提供给 TF_Run、 TF_SessionRun、TF_SetAttrTensor 等的 TF_Tensor 对象的所有权。

将 tf.image.per_image_whitening() 更名为 tf.image.per_image_standardization()。

将 Summary protobuf 构造函数移动到了 tf.summary 子模块。

不再使用 histogram_summary、audio_summary、 scalar_summary,image_summary、merge_summary 和 merge_all_summaries。

组合 batch_ *和常规版本的线性代数和 FFT 运算。常规运算现在也处理批处理。所有 batch_ * Python 接口已删除。

tf.all_variables,tf.VARIABLES 和 tf.initialize_all_variables 更名为 tf.global_variables,tf.GLOBAL_VARIABLES 和 tf.global_variable_initializers respectively。

Bug 修复和其他的变化

使用线程安全版本的 lgamma 函数。

修复 tf.sqrt 负参数。

修正了导致用于多线程基准的线程数不正确的错误。

多核 CPU 上 batch_matmul 的性能优化。

改进 trace,matrix_set_diag,matrix_diag_part 和它们的梯度,适用于矩形矩阵。

支持复值矩阵的 SVD。

本文选自 Google Developers Blog:https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html

©本文为机器之心编译文章,转载请联系机器之心获得授权。

相关阅读:

中高端IT圈人群,欢迎加入!

网友点评
猜你喜欢