前端开发者如何借助云端一体方案拓展自己的能力及职业边界,戳此了解 了解详情
写点什么

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

  • 2019 年 3 月 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 年 3 月 01 日 13:009225
用户头像
蔡芳芳 InfoQ高级编辑

发布了 674 篇内容, 共 354.6 次阅读, 收获喜欢 2375 次。

关注

评论

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

企业知识管理的解决方案

小炮

知识管理 企业知识管理 企业知识管理工具

状态机引擎在vivo营销自动化中的深度实践 | 引擎篇02

vivo互联网技术

服务器 状态机

一文了解垃圾回收算法中的引用计数算法

宇宙之一粟

垃圾回收算法 引用计数 4月月更

微信朋友券的高性能复杂度

CityAnimal

架构实战营 #架构实战营 「架构实战营」

使用和风天气 API 10分钟搭建天气预报数据看板

蒋川

API 天气api

Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库

xuri

golang Excel Apache POI Go 语言 Excelize

《手写Mybatis》第4章:Mapper XML的解析和注册使用

小傅哥

小傅哥 mybatis 工厂模式 建造者

大家好啊,世界您好啊

InfoQ_353bc6b96230

直播预告|MobTech携手中国信通院共话数据治理建设实践

MobTech袤博科技

数据安全 火山引擎 信通院 MobTech袤博科技

模块二:微信朋友圈高性能复杂度分析

jiaoxn

「架构实战营」

架构实战营作业 - 模块二

haibin369

「架构实战营」

自己动手写Docker系列 -- 5.5实现容器停止

Go Docker 4月月更

B 端 SaaS 产品自动化事件设计 - 规则表达式

龙国富

自动化 SaaS 正则 B端 规则表达式

10个商品图策略,引导亚马逊卖家提升客户购物体验

龙国富

电商 商品 亚马逊 客户体验

净推荐值(NPS)完整行动指南

龙国富

客户体验 NPS 净推荐值 北极星指标 客户忠诚度

模块二作业:微信朋友圈高性能复杂度分析

杨波

「架构实战营」

十年磨一剑,墨菲安全正式发布开源项目murphysec

墨菲安全

开源安全

13个问题帮你选型 “客户体验管理SaaS平台”

龙国富

SaaS 选型 客户体验 CEM CXM

超nei卷!连黑客勒索软件团伙都开始谈客户体验…

龙国富

黑客 客户体验 drakside 客户至上

Go服务错误堆栈收集降频策略

SFLYQ

后端 高并发 Go 语言 日志采集

python 包之 Pillow 图像处理教程

autofelix

Python 图像处理 Pillow 4月月更

Linux驱动开发-编写PCF8591(ADC)芯片驱动

DS小龙哥

4月月更

spring-cloud 链路追踪

Rubble

4月日更

脉冲能量|Committer 专访——李理:Apache Pulsar 项目“体验师”

Apache Pulsar

开源 云原生 Apache Pulsar Apache Pulsar 社区 运维‘

微信朋友圈的高性能复杂度

大眼喵

「架构实战营」

华为云GaussDB(for Influx)揭秘第五期:最佳实践之子查询

华为云开发者社区

数据库 华为云 GaussDB(for Influx) 子查询 InfluxQL

不写代码,带你徒手开发一个健康打卡应用

华为云开发者社区

无代码 AppCube 应用开发 健康打卡 可视化编排

快速尝鲜:RabbitMQ 搭建完就得用起来

阿Q说代码

RabbitMQ springboot 4月月更 消息确认机制

为啥JS/TS里都会有"use strict"

华为云开发者社区

js ts 严格模式 use strcit 使用严格

都2022年了,HDFS为何还如此能战

华为云开发者社区

大数据 hadoop hdfs 分布式文件系统 大数据存储

Test

haibin369

对象存储 S3 在分布式文件系统中的应用

对象存储 S3 在分布式文件系统中的应用

一行代码迁移TensorFlow 1.x到TensorFlow 2.0_AI_TensorFlow团队_InfoQ精选文章