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

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

toyiye 2024-07-09 22:47 13 浏览 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 中。

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码