写点什么

一行代码迁移 TensorFlow 1.x 到 TensorFlow 2.0

  • 2019-03-01
  • 本文字数:1021 字

    阅读完需:约 3 分钟

一行代码迁移TensorFlow 1.x到TensorFlow 2.0

TensorFlow 2.0 将会包含许多 API 改变,例如改变参数顺序、重命名、修改默认值等。手动迁移代码比较繁琐,还有出错的风险。为了让你的老代码能够向 TensorFlow 2.0 无缝迁移,TensorFlow 开发组推出了 tf_upgrade_v2 功能。


当你使用 pip 安装 TensorFlow 2.0 时,tf_upgrade_v2 就会自动安装,它可以帮你更快速地将已有的 TensorFlow 1.13 脚本迁移到 TensorFlow 2.0。


我们尝试尽可能多地自动执行升级任务:但是,仍然有一些句法和风格改变是 tf_upgrade_v2 无法自动迁移的,这些变更无法用简单的字符串替换来实现。为了确保你的代码可以被 TensorFlow 2.0 支持,升级脚本中包含了一个 compat.v1 模块。这个模块会将 tf.foo 形式的调用替换为 tf.compat.v1.foo。我们推荐的做法是,尽快人工校对这些替换,并将它们迁移到 tf.*命名空间下的新 API 而不是使用 tf.compat.v1.*命名空间。


另外,由于一些模块被废弃(例如 tf.flags 和 tf.contrib),TensorFlow 2.0 会包含一些无法通过切换到 compat.v1 解决的变更。升级这些代码需要用到额外的库(如 absl.flags)或者将代码切换到 tensorflow/addons 包下。


如果你想要把模型从 TensorFlow 1.12 迁移到 TensorFlow 2.0,首先要安装 tf-nightly-2.0-preview 或 tf-nightly-gpu-2.0-preview。


然后就可以通过运行一个单独的 Python 脚本直接升级:


tf_upgrade_v2 — infile foo.py — outfile foo-upgraded.py
复制代码



注意:通过 pip install 安装 TensorFlow 1.13 及后续版本时会自动安装 tf_upgrade_v2。


也可以在文件夹目录中执行升级脚本:


# upgrade the .py files and copy all the other files to the outtreetf_upgrade_v2 — intree foo/ — outtree foo-upgraded/# just upgrade the .py filestf_upgrade_v2 — intree foo/ — outtree foo-upgraded/ — copyotherfiles False
复制代码


脚本会列出到底做了哪些改动,例如参数重命名:



添加关键字:



以及有哪些地方推荐进行人工检查:



所有的信息都会被包含在当前文件夹的 report.txt 中。升级完成后,你可以运行模型来检查你的输出是否和 1.13 版本的输出相似。


警告

  • 在运行脚本之前,不要手动修改代码。尤其是那些会变更参数顺序的函数,例如 tf.argmax 或者 tf.batch_to_space,这会导致脚本错误地映射参数关键词。

  • 脚本本身不会进行参数重排序,只会为发生了参数重排的函数添加参数关键字


参考链接:


https://medium.com/tensorflow/upgrading-your-code-to-tensorflow-2-0-f72c3a4d83b5


更多内容,请关注 AI 前线



2019-03-01 13:0010952
用户头像
蔡芳芳 InfoQ主编

发布了 801 篇内容, 共 563.7 次阅读, 收获喜欢 2794 次。

关注

评论

发布
暂无评论
发现更多内容

YMatrix:超融合数据库如何在泵车智能运维场景实现 One for All 价值

YMatrix 超融合数据库

智能运维 三一重工 超融合数据库 智能化运维 YMatrix

学习java开发技术应该如何入手

小谷哥

Java开发技术很难吗?

小谷哥

演讲实录|OpenMLDB 与阿里云 MaxCompute 生态集成

第四范式开发者社区

人工智能 数据库 开源 时序数据库 特征

【前端相关】服务端渲染和客户端渲染的比较

No8g攻城狮

CSS css3 前端 js 前端框架

基于人眼视觉模型,实现码率、质量、成本的最优均衡

阿里云CloudImagine

云计算 阿里云

对于Getaverse,灵魂绑定和去中心化身份是什么?

Geek_Web3

Web3 Daily 去中心化信任 #区块链# did

FLStudio21.0.0水果官方中文版发布功能介绍

茶色酒

FLStudio21.0.0

JDK自带命令优化

@下一站

代码优化 12月日更 12月月更 jvm优化 java程序优化

前端培训学习前景怎么样

小谷哥

云计算的六大核心技术,你了解多少?

Finovy Cloud

云技术 云渲染

时序数据库破局开放探讨

YMatrix 超融合数据库

物联网 时序数据库 超融合数据库 数据库架构选型 YMatrix

在成都培训web前端哪有比较好的机构

小谷哥

RocketMQ 在网易云音乐的实践

Apache RocketMQ

RocketMQ 消息

北京同仁堂两大名牌品种亮相帝都

联营汇聚

Verilog 时延与过程结构

芯动大师

Verilog语法 Verilog延时 Verilog过程结构

中台+低代码 企业数字化转型新范式

力软低代码开发平台

flutter系列之:如丝般顺滑的SliverAppBar

程序那些事

flutter 程序那些事

iQOO11 国内安卓首发背景音过滤,人声更突显,通话更隐私

Geek_2d6073

重磅 | 九科信息入选创新型中小企业(原深圳市专精特新企业)

九科Ninetech

卡塔尔世界杯出现了半自动越位识别技术、动作轨迹捕捉等黑科技。

汀丶人工智能

12月日更 12月月更 世界杯黑科技

KCL - 让 Kubernetes 资源清单管理更容易

Peefy

编程 Serverless Kubernetes #开源 #DevOps

版本控制 | 如何将UnrealGameSync与Perforce Helix Core结合使用

龙智—DevSecOps解决方案

虚拟引擎 UnrealGameSync

架构实战营 2-4 架构质量提升随堂练习

西山薄凉

「架构实战营」

“智造新未来”欧比护理智造总部奠基仪式

联营汇聚

2022-12-12:有n个城市,城市从0到n-1进行编号。小美最初住在k号城市中 在接下来的m天里,小美每天会收到一个任务 她可以选择完成当天的任务或者放弃该任务 第i天的任务需要在ci号城市完成,

福大大架构师每日一题

算法 rust 福大大

React 之 Context 的变迁与背后实现

冴羽

JavaScript 源码分析 前端 前端框架 React

华为侯金龙:能源流与信息流融合,共建绿色低碳城市

Geek_2d6073

Java培训一般需要多长时间?

小谷哥

喜报 | 秒云获评2022(第二届)“金信通”金融科技创新应用优秀案例

MIAOYUN

金融科技 解决方案 信创

数据生态第四弹 | OpenMLDB Hive Connector,架构起数据仓库到特征工程的生态桥梁

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

一行代码迁移TensorFlow 1.x到TensorFlow 2.0_AI&大模型_TensorFlow团队_InfoQ精选文章