前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TensorFlow 2.8.0正式上线,修复众多Bug,发布50多个漏洞补丁

TensorFlow 2.8.0正式上线,修复众多Bug,发布50多个漏洞补丁

作者头像
机器之心
发布2022-02-23 18:08:56
7520
发布2022-02-23 18:08:56
举报
文章被收录于专栏:机器之心机器之心

机器之心报道

编辑:陈萍

TensorFlow 2.8.0 来了。

近日 TensorFlow 官方发布了 2.8.0 正式版,距离上次 2.7 版本的更新过去没多久,新版本提供了更多的 bug 修复和功能改进,此外新版本还针对漏洞发布了补丁。

对于 TensorFlow 2.8.0 的上线,网友也纷纷感叹,这次的 Bug 修复也太棒了!

不过也有网友已经迫不及待的期待 TensorFlow 3.0 的到来,并表示 TensorFlow 1 到 TensorFlow 2 是一个巨大的飞跃,将来 2 到 3 又会有哪些亮眼的表现呢?

众所周知,TensorFlow 由谷歌开发,最初版本可追溯到 2015 年开源的 TensorFlow0.1,之后发展稳定,拥有强大的用户群体,成为最受欢迎的深度学习框架。但是用户在使用时,也暴露了 TensorFlow 缺点,例如 API 稳定性不足、静态计算图编程复杂等缺陷。因此在 TensorFlow2.0 版本,谷歌将 Keras 纳入进来,成为 tf.keras,到目前为止,TensorFlow 已经更新到 2.8 版本,那么新版本有哪些重要的改进呢?

TensorFlow 2.8.0 主要功能和改进

在 tf.lite 中,增加了 TFLite 内置 op 支持以下功能:

  • tf.raw_ops.Bucketize op 可在 CPU 上操作;
  • tf.where op 可用于数据类型 tf.int32、tf.uint32、tf.int8、tf.uint8、tf.int64;
  • tf.random.normal op 用于在 CPU 上输出数据类型 tf.float32;
  • tf.random.uniform op 用于在 CPU 上输出数据类型 tf.float32;
  • f.random.categorical op 用于在 CPU 上的输出数据类型 tf.int64。

tensorflow.experimental.tensorrt:

  • Conversion_params 在 TrtGraphConverterV2 中被弃用,现在可以支持参数 max_workspace_size_bytes、precision_mode、minimum_segment_size、maximum_cached_engines、use_calibration 和 allow_build_at_runtime;
  • 在 TrtGraphConverterV2 中的 .save () 函数中添加了一个名为 save_gpu_specific_engines 的新参数。当为 False 时,.save () 函数不会保存任何已构建的 TRT 引擎;如果为 True(默认),则保留原始行为;
  • TrtGraphConverterV2 提供了一个名为 .summary () 的新 API。它显示了每个 TRTEngineOp 及其输入和输出的形状和 dtype,并提供了详细版本摘要。

tf.tpu.experimental.embedding:

  • tf.tpu.experimental.embedding.FeatureConfig 增加了一个额外的参数 output_shape,它可以指定特征输出激活的形状;
  • tf.tpu.experimental.embedding.TPUEmbedding 现在具有与 tf.tpu.experimental.embedding.serving_embedding_lookup 相同的功能,它可以使用任意等级密集和稀疏的张量。对于不规则张量,尽管输入张量仍然是 2 级,但现在可以通过在特征配置中指定输出形状或通过 build 方法来激活 2 级或更高级别。

添加 tf.config.experimental.enable_op_determinism ,这使得 TensorFlow ops 以性能为代价可以确定性地运行。替换 TF_DETERMINISTIC_OPS 环境变量。

(自 TF 2.7 起)向 TensorFlow Profiler 添加 PluggableDevice 支持。

Bug 修复和其他改进

tf.data:

  • 如果用户未禁用,现在优化 parallel_batch 现在成为默认值,这样可以并行复制批处理元素;
  • 添加了 TensorSliceDataset,用于识别和处理文件输入。

tf.lite:

  • 为 Java API 的序列化添加 GPU 委托支持,当 OpenCL 可用时,这将初始化时间提高了 90%;
  • 弃用 Interpreter::SetNumThreads,支持 InterpreterBuilder::SetNumThreads。

tf.keras

  • tf.random.Generator 用于 keras 初始化和所有的 RNG 代码;
  • TextVectorization 增加了额外的 standardize 和 split 模式:standardize="lower" 转化为小写字母输入;standardize="string_punctuation" 删除所有标点符号;Split ="character" 将对每个 unicode 字符进行拆分。

增加 GPU 实现:

  • (自 2.7 版本开始) tf.math.segment_mean
  • (自 2.7 版本开始) tf.math.segment_prod
  • (自 2.7 版本开始) tf.math.segment_sum

TensorFlow 已在适用于 GPU 和 CPU 的 Windows Subsystem for Linux 2(又名 WSL 2)上得到验证。

此外,TensorFlow 2.8.0 在安全方面进行了一些修正,包括修正了执行卷积运算时浮点数被 0 除的问题:CVE-2022-21725;修正了 Dequantize 形状推断中的整数溢出问题:CVE-2022-21727;修正了 ConcatV2 形状推断中的类型混淆问题:CVE-2022-21731 等。

更多内容,请参考:https://github.com/tensorflow/tensorflow/releases/tag/v2.8.0?linkId=8031153

© THE END

转载请联系本公众号获得授权

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档