专栏首页AI科技大本营的专栏请注意更新TensorFlow 2.0的旧代码

请注意更新TensorFlow 2.0的旧代码

TensorFlow 2.0 将包含许多 API 变更,例如,对参数进行重新排序、重新命名符号和更改参数的默认值。手动执行所有这些变更不仅枯燥乏味,而且容易出错。为简化变更过程并让您尽可能顺畅地过渡到 TensorFlow 2.0,TensorFlow 工程团队创建了实用程序 tf_upgrade_v2,可帮助您将旧代码转换至新 API。

传送门: tf_upgrade_v2:https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/upgrade.md

使用 pip 安装 TensorFlow 2.0 时,系统会自动添加 tf_upgrade_v2 实用程序。该程序可将现有的 TensorFlow 1.13 Python 脚本转换为 TensorFlow 2.0,以帮助加快您的升级过程。

我们已尝试自动化处理尽可能多的升级任务,但脚本仍无法处理一些句法和风格方面的变更。

某些 API 符号可能无法仅使用字符串替代方案简单升级。为确保 TensorFlow 2.0 仍支持您的代码,升级脚本加入了 compat.v1 模块。此模块将以等效的 tf.compat.v1.foo 引用代替表单 tf.foo 的调用。不过,建议您手动检查此类替代方案,并尽快将其迁移至 tf.* 命名空间(代替 tf.compat.v1.* 命名空间)中的新 API。

此外,由于我们弃用了某些模块(例如 tf.flags 和 tf.contrib),您将无法通过切换至 compat.v1 来实现 TensorFlow 2.0 中的某些变更。升级使用这些模块的代码可能需要额外使用一个库(如 absl.flags)或切换至 tensorflow/addons 中的软件包。

传送门: tensorflow/addons: https://github.com/tensorflow/addons

如果您想尝试将模型从 TensorFlow 1.12 升级至 TensorFlow 2.0,请按照下方说明执行操作:

首先,安装 tf-nightly-2.0-preview / tf-nightly-gpu-2.0-preview。 注意:使用 pip 安装 TensorFlow 1.13 及以上版本(包括 nightly 2.0 构建版)时,系统会自动安装 tf_upgrade_v2。

您可以在单个 Python 文件上运行升级脚本:

tf_upgrade_v2 --infile foo.py --outfile foo-upgraded.py

您也可以在目录树上运行升级脚本:

# upgrade the .py files and copy all the other files to the outtree

tf_upgrade_v2 --intree foo/ --outtree foo-upgraded/

# just upgrade the .py files

tf_upgrade_v2 --intree foo/ --outtree foo-upgraded/ --copyotherfiles False

此脚本还会列出详细的变更,例如参数重命名:

添加关键字:

以及推荐进行的任何手动检查情况:

所有这些信息将导出至主目录的 report.txt 文件中。在 tf_upgrade_v2 运行升级后的脚本并将其导出后,您便可运行模型并进行检查,以确保您的输出与 TensorFlow 1.13 类似:

注意:

  • 在运行此脚本前,请勿手动升级部分代码。特别要注意的是,在对函数中的 tf.argmax 或 tf.batch_to_space 等参数进行重新排序后,脚本会错误地添加关键字参数并导致现有的代码发生错误映射
  • 此脚本不会对参数进行重新排序。相反,此脚本会将关键字参数添加至对自身参数进行重新排序的函数中

如要报告升级脚本错误或发出功能请求,请在 GitHub 上提交问题。

(本文为AI科技大本营转载文章,转载请联系作者)

本文分享自微信公众号 - AI科技大本营(rgznai100)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 我们期待的TensorFlow 2.0还有哪些变化?

    为提高 TensorFlow 的工作效率,TensorFlow 2.0 进行了多项更改,包括删除了多余的 API,使API 更加一致统一,例如统一的 RNNs ...

    AI科技大本营
  • 重磅 | TensorFlow 2.0即将发布,所有tf.contrib将被弃用

    上周,谷歌刚刚发布了 TensorFlow 1.10.0 版本(详见《TensorFlow 版本 1.10.0 发布》),如今,TensorFlow 的 2.0...

    AI科技大本营
  • 我们期待的TensorFlow 2.0还有哪些变化?

    为提高 TensorFlow 的工作效率,TensorFlow 2.0 进行了多项更改,包括删除了多余的 API,使API 更加一致统一,例如统一的 RNNs ...

    AI科技大本营
  • Java 创建线程有哪几种方法

    2. 实现 Runnable 接口的 run 方法, 然后再用 Thread 类包裹后,调用 start 方法。

    水货程序员
  • TensorFlow核心使用要点

    正文之前,小梦先来说说什么是TensorFlow。TensorFlow是谷歌研发的第二代人工智能学习系统,可被用于语音识别或图像识别等多项机器深度学 习领域。T...

    企鹅号小编
  • Remove Duplicates from Sorted List

    问题:将有序链表中的重复元素删除 分析:由于有序,所以p结点是否重复只需要和它的前一节点比较是否相等就可以了,我们可以定义一个helper新头结点链表     ...

    用户1624346
  • 给萌新的Flexbox简易入门教程

    近几年,CSS领域出现了一些复杂的专用布局工具,用以代替原有的诸如使用表格、浮动和绝对定位之类的各种变通方案。Flexbox,或者说是弹性盒子布局模块(Flex...

    葡萄城控件
  • 【CV中的特征金字塔】二,Feature Pyramid Network

    在深度学习兴起以前,很多传统方法都会使用到图像金字塔。图像金字塔如上图所示,就是将图片resize到不同的大小,然后分别得到对应大小的特征,然后进行预测。这种方...

    BBuf
  • Python安装TensorFlow 2、tf.keras和深度学习模型的定义

    使用tf.keras,您可以设计,拟合,评估和使用深度学习模型,从而仅用几行代码即可做出预测。它使普通的深度学习任务(如分类和回归预测建模)可供希望完成任务的普...

    拓端
  • Python安装TensorFlow 2、tf.keras和深度学习模型的定义

    使用tf.keras,您可以设计,拟合,评估和使用深度学习模型,从而仅用几行代码即可做出预测。它使普通的深度学习任务(如分类和回归预测建模)可供希望完成任务的普...

    拓端

扫码关注云+社区

领取腾讯云代金券