Auto Byte

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

微信扫一扫获取更多资讯

Science AI

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

微信扫一扫获取更多资讯

陈萍报道

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

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

入门TensorFlow 2.8.0
相关数据
TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

推荐文章
暂无评论
暂无评论~