百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

TensorFlow2.1正式版上线最后一次支持Python2,进一步支持TPU

toyiye 2024-06-21 12:07 9 浏览 0 评论

机器之心报道

参与:杜伟、一鸣

TensorFlow2.1的更新,能够让弃坑的用户回心转意吗?


去年 10 月,谷歌才发布了 TensorFlow 2.0 正式版。时隔三个月后,昨日官方发布了 TensorFlow 2.1,本次版本更新带了了多项新特性、功能改进和 bug 修复。


从本次更新的日志来看,TensorFlow 2.1 将成为最后一个支持 Python2 的版本了。同时,本次更新的重点是增加了对 TPU 的多项支持,而 tf.keras 和 tf.data 这两个常用的 API 也得到了很多新的更新。据悉,TensorFlow 2.1 的 CUDA 版本为 10.1,cuDNN 版本为 7.6。


在对操作系统的支持上,Windows 和 Linux 系统的 TensorFlow pip 版本默认支持 GPU。也就是说,如果使用 pip install tensorflow,则版本默认为是 gpu 版本(原始的 tensorflow-gpu 版本依然存在)。当然,不管有没有英伟达版本的 GPU,tensorflow 依然能够运行。
如果需要使用 CPU 版本,用户的安装命令应该为:pip install tensorflow-cpu。
项目地址:https://github.com/tensorflow/tensorflow/releases
对于本次更新的内容,机器之心整理如下:
进一步支持 TPU
TensorFlow 2.1 最大的亮点在于进一步增加对 TPU 的支持。从 tf.keras、tf.data 等 API 的功能调整和更新来看,现在使用 TPU 加载数据集、训练和模型推理会更方便一些。
tf.keras 对 TPU 的支持

  • 增加了在 GPU 和 Cloud TPUs 上对混合精度(mix precision)的支持;
  • tf.Keras 中的 compile、fit、evaluate、predict 等 API 都支持 Cloud TPUs 了,而且支持所有的 Keras 模型(即以 sequential、functional 和子类方式构建的模型都支持);
  • 现在可以使用 Cloud TPU 进行自动外部编译(automatic outside compilation)了,这使得 tf.summary 和 Cloud TPUs 能够更好地一起使用;
  • 分布式策略和 Keras 中的动态批大小控制已支持 Cloud TPUs;
  • 支持在 TPU 上使用 numpy 格式的数据进行 fit、evaluate 和 predict。


tf.data 对 TPU 的支持
tf.data.Dataset 现在支持自动数据分发(automatic data distribution)和分布式环境下的分片操作,包括在 TPU pods 上都可以。
tf.distribute 对 TPU 的支持
支持在 TPU 和 TPU pods 上定制训练循环,通过以下 API 即可:
strategy.experimental_distribute_dataset、 strategy.experimental_distribute_datasets_from_function、strategy.experimental_run_v2 和 strategy.reduce。
重要 API 更新
TensorFlow 2.1 进行了以下一些重要的 API 更新:
tf.keras

  • 推出了 TextVectorization 层,该层将原始字符串作为输入,并兼顾到了文本规范化、标记化、N 元语法生成和词汇检索;
  • 允许 Keras .compile、.fit、.evaluate 和.predict 在 DistributionStrategy 范围之外,前提是模型在该范围内构建;
  • 诸多流行模型的 Keras 参考实现都可以在 TensorFlow Model Garden(https://github.com/tensorflow/models/tree/master/official)中获得;


tf.data
tf.data datasets 和分布式策略都进行了改进,以获得更好的性能。需要注意的是 dataset 会变得有些不同,重新进行了分批的数据集会有多个副本;而分布式策略也会进行调整,如下所示:

tf.data.experimental.AutoShardPolicy(OFF, AUTO, FILE, DATA) tf.data.experimental.ExternalStatePolicy(WARN, IGNORE, FAIL)


TensorRT
现在 TensorRT 6.0 是默认的版本,这一版本增加了对更多 TensorFlow 算子的支持,包括 Conv3D、Conv3DBackpropInputV2、AvgPool3D、MaxPool3D、ResizeBilinear 和 ResizeNearestNeighbor。
此外,TensorFlow 和 TensorRT 的 Python 交互 API 被命名为 tf.experimental.tensorrt.Converter。
Bug 修复
TensorFlow 2.1.0 还修复了以前版本中出现的一些 Bug,整理如下:
tf.data

  • 修复当 sloppy=True 时 tf.data.experimental.parallel_interleave 出现的并发问题;
  • 增加 tf.data.experimental.dense_to_ragged_batch();
  • 扩展 tf.data 语法解析选项,从而支持 RaggedTensors。


tf.distribute
修复使用 tf.distribute.Strategy 时 GRU 崩溃或输出错误结果的问题。
tf.keras

  • 导出 tf.keras.backend 中的 depthwise_conv2d;
  • 在 Keras Layers 和 Models 中,删除 trainable_weights、non_trainable_weights 和 weights 中变量的重复数据;
  • Kerasmodel.load_weights 现将 skip_mismatch 接受为一种自变量;
  • 修复 Keras 卷积层的输入形状缓存的行为;
  • Model.fit_generator、Model.evaluate_generator、Model.train_on_batch, Model.test_on_batch 和 Model.predict_on_batch 方法现遵循 run_eagerly 属性,并且在默认情况下,使用 tf.function 能够正确地运行。请注意,Model.fit_generator、Model.evaluate_generator 和 Model.predict_generator 是不宜用的端点。这些端点现已被归入支持生成器和序列的 Model.fit、Model.evaluate 和 Model.predict 中。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码