Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

TensorFlow版本号升至1.0,正式版即将到来

2015 年 11 月份,谷歌宣布开源了深度学习框架 TensorFlow,一年之后,TensorFlow 就已经成长为了 GitHub 上最受欢迎的深度学习框架(参见机器之心文章《深度 | TensorFlow 开源一周年:这可能是一份最完整的盘点》),尽管那时候 TensorFlow 的版本号还是 v0.11。现在,TensorFlow 的一岁生日之后两个月,TensorFlow 社区终于决定将 TensorFlow 的版本号升至 1.x,并也已于昨日发布了 TensorFlow 1.0.0-alpha,其新增了实验性的 Java API,并且提升了对 Android 的支持。


发布地址


  • 官网:https://www.tensorflow.org/versions/r1.0/

  • GitHub:https://github.com/tensorflow/tensorflow/releases


主要特性和提升


  • TensorFlow Debugger (tfdbg):命令行接口和 API

  • 增加新的 python 3 docker 镜像

  • 使 pip 包兼容 pypi。现在可以通过 pip install tensorflow 命令来安装 TensorFlow 了

  • Android:人员检测+跟踪演示,是通过使用了深度神经网络的可扩展目标检测实现的

  • Android:预构建的 libs 现在每晚(nightly)构建

  • 新的(实验性的)Jave API:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/java


API 的重要更改


  • TensorFlow/models 被移到了一个单独的 GitHub repository.

  • 除法和取模运算符(/, //, %)现已匹配 Python(flooring)语义。这也适用于 tf.div 和 tf.mod。为了获取强制的基于整数截断的行为,你可以使用 tf.truncatediv 和 tf.truncatemod.

  • tf.divide 现在是推荐的除法函数。tf.div 还将保留,但其语义将不会响应 Python 3 或 from future 机制.

  • tf.reverse 现在是将轴的索引反转。例如,tf.reverse(a, [True, False, True]) 现在必须写成 tf.reverse(a, [0, 2])。tf.reverse_v2() 暂时保留,直到 1.0 final 版.

  • tf.mul、tf.sub 和 tf.neg 被弃用,现在使用的是 tf.multiply、tf.subtract 和 tf.negative.

  • tf.pack 和 tf.unpack 被启用,现在使用的是 tf.stack 和 tf.unstack.

  • TensorArray.pack 和 TensorArray.unpack 将被启用,取而代之的是 TensorArray.stack 和 TensorArray.unstack.

  • 以下 Python 函数有参数修改,以在引用特定维度时使用 axis. 我们目前基于兼容性的考量而保留了原来的关键词参数,但我们将在 1.0 final 版中移除它们。


  • tf.argmax: dimension 变成 axis

  • tf.argmin: dimension 变成 axis

  • tf.count_nonzero: reduction_indices 变成 axis

  • tf.expand_dims: dim 变成 axis

  • tf.reduce_all: reduction_indices 变成 axis

  • tf.reduce_any: reduction_indices 变成 axis

  • tf.reduce_join: reduction_indices 变成 axis

  • tf.reduce_logsumexp: reduction_indices 变成 axis

  • tf.reduce_max: reduction_indices 变成 axis

  • tf.reduce_mean: reduction_indices 变成 axis

  • tf.reduce_min: reduction_indices 变成 axis

  • tf.reduce_prod: reduction_indices 变成 axis

  • tf.reduce_sum: reduction_indices 变成 axis

  • tf.reverse_sequence: batch_dim 变成 batch_axis, seq_dim 变成 seq_axis

  • tf.sparse_concat: concat_dim 变成 axis

  • tf.sparse_reduce_sum: reduction_axes 变成 axis

  • tf.sparse_reduce_sum_sparse: reduction_axes 变成 axis

  • tf.sparse_split: split_dim 变成 axis


  • tf.listdiff 已被重命名为 tf.setdiff1d 以匹配 NumPy 命名.

  • tf.inv 已被重命名为 tf.reciprocal(分量互逆)以避免和矩阵求逆的 np.inv 混淆

  • tf.round 现在使用了四舍六入五留双规则语义,以匹配 NumPy.

  • tf.split 现在以相反的顺序取参数,并使用了不同的关键词。特别地,我们现在将 NumPy 顺序匹配成了 tf.split(value, num_or_size_splits, axis).

  • tf.sparse_split 现在以相反的顺序取参数,并使用了不同的关键词。特别地,我们现在将 NumPy 顺序匹配成了 tf.sparse_split(sp_input, num_split, axis). 注意:现在我们暂时让 tf.sparse_split 需要关键词参数.

  • 启用 tf.concat 运算符,现在请暂时切换成 tf.concat_v2 . 在 Beta 版中,我们将更新 tf.concat 以匹配 tf.concat_v2 的参数顺序.

  • tf.image.decode_jpeg 默认使用更快的 DCT 方法. 速度的提升牺牲了一点保真度。你可以通过特定属性 dct_method='INTEGER_ACCURATE'来恢复原来的行为.

  • tf.complex_abs 已被从 Python 接口移除. 应该使用 tf.abs,它支持复数张量.

  • 模板.var_scope 属性重命名为 .variable_scope

  • SyncReplicasOptimizer 被移除,SyncReplicasOptimizerV2 重命名为 SyncReplicasOptimizer.

  • tf.zeros_initializer() 和 tf.ones_initializer() 现在返回一个 callable,其必须用 initializer 参数调用,在你的代码中用 tf.zeros_initializer() 替代 tf.zeros_initializer.

  • SparseTensor.shape 重命名为 SparseTensor.dense_shape. SparseTensorValue.shape 也一样.

  • 移除了原来的 tf summary 运算符,比如 tf.scalar_summary 和 tf.histogram_summary. 取而代之的是 tf.summary.scalar 和 tf.summary.histogram .

  • 移除 tf.train.SummaryWriter 和 tf.train.SummaryWriterCache.

  • 从公共 API 中移除 RegisterShape . 现在使用 C++ 形状函数注册.

  • 从 Python API 弃用 _ref dtypes .


漏洞修复和其它更改


  • 新指令: parallel_stack.

  • 为 RecordReader/RecordWriter 引入常见的 tf io 压缩选项常量.

  • 添加 sparse_column_with_vocabulary_file,其能指定一个将字符串特征转换为 ID 的特征列(feature column),其中的映射是通过一个词汇表文件定义的.

  • 添加 index_to_string_table,其返回一个将索引映射到字符串的查找表.

  • 添加 string_to_index_table,其返回一个将字符串匹配到索引的查找表.

  • 添加一个 ParallelForWithWorkerId 函数.

  • 支持从 contrib/session_bundle 中的 v2 中的检查点恢复会话.

  • 添加了一个用于任意角度的 tf.contrib.image.rotate 函数.

  • 添加了 tf.contrib.framework.filter_variables,这是一个用于基于正则表达式过滤变量列表的方便函数.

  • make_template() 加入了一个可选的 custom_getter_ param.

  • 添加了关于现有目录如何被 recursive_create_dir 处理的注释.

  • 添加了用于 QR 因式分解的指令.

  • Python API 中的除法和取模现在使用 flooring (Python) 语义.

  • Android:在 contrib/android/cmake 下,用于 TensorFlow Inference 库的 cmake/gradle build

  • Android:远远更加稳健的会话初始化代码.

  • Android:当 debug 模式激活时,TF stats 直接出现在演示和日志中.

  • Android:新的更好的 README.md 文档.


致谢我们的贡献者


这个版本包含了来自谷歌很多人的贡献,此外还有以下贡献者:


4e3e875909ea322b1b49c19c2b57f00e.jpg

我们也非常感激所有提交了问题或帮助解决它们的所有人——提出和回答问题也是激发讨论的一部分。


下载源代码


  • zip :https://github.com/tensorflow/tensorflow/archive/v1.0.0-alpha.zip

  • tar.gz:https://github.com/tensorflow/tensorflow/archive/v1.0.0-alpha.tar.gz

入门TensorFlow谷歌工程深度学习框架
暂无评论
暂无评论~