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

60s测试:你是否适合转型人工智能?

https://edu.csdn.net/topic/ai30?utm_source=cxrs_bw

传送门:

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科技大本营转载文章,转载请联系作者)

2019年人工智能系统学:

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

群招募

扫码添加小助手微信,回复:公司+研究方向(学校+研究方向),邀你加入技术交流群。技术群审核较严,敬请谅解。

推荐阅读:

点击“阅读原文”,查看历史精彩文章。

请注意更新TensorFlow 2.0的旧代码的更多相关文章

  1. 请不要继续使用VC6.0了!

    很多次和身边的同学交流,帮助同学修改代码,互相分享经验,却发现同学们依然在使用老旧的VC6.0作为编程学习的软件,不由得喊出:“请不要继续使用VC6.0了!”. VC6.0作为当年最好的IDE(集成开 ...

  2. 独家 | TensorFlow 2.0将把Eager Execution变为默认执行模式,你该转向动态计算图了

    机器之心报道 作者:邱陆陆 8 月中旬,谷歌大脑成员 Martin Wicke 在一封公开邮件中宣布,新版本开源框架——TensorFlow 2.0 预览版将在年底之前正式发布.今日,在上海谷歌开发者 ...

  3. 三分钟快速上手TensorFlow 2.0 (后续)——扩展和附录

    TensorFlow Hub 模型复用 TF Hub 网站 打开主页 https://tfhub.dev/ ,在左侧有 Text.Image.Video 和 Publishers 等选项,可以选取关注 ...

  4. 三分钟快速上手TensorFlow 2.0 (下)——模型的部署 、大规模训练、加速

    前文:三分钟快速上手TensorFlow 2.0 (中)——常用模块和模型的部署 TensorFlow 模型导出 使用 SavedModel 完整导出模型 不仅包含参数的权值,还包含计算的流程(即计算 ...

  5. 使用TensorFlow v2.0构建多层感知器

    使用TensorFlow v2.0构建一个两层隐藏层完全连接的神经网络(多层感知器). 这个例子使用低级方法来更好地理解构建神经网络和训练过程背后的所有机制. 神经网络概述 MNIST 数据集概述 此 ...

  6. 使用TensorFlow v2.0构建卷积神经网络

    使用TensorFlow v2.0构建卷积神经网络. 这个例子使用低级方法来更好地理解构建卷积神经网络和训练过程背后的所有机制. CNN 概述 MNIST 数据集概述 此示例使用手写数字的MNIST数 ...

  7. TensorFlow v2.0实现Word2Vec算法

    使用TensorFlow v2.0实现Word2Vec算法计算单词的向量表示,这个例子是使用一小部分维基百科文章来训练的. 更多信息请查看论文: Mikolov, Tomas et al. " ...

  8. Tensorflow 2.0 深度学习实战 —— 详细介绍损失函数、优化器、激活函数、多层感知机的实现原理

    前言 AI 人工智能包含了机器学习与深度学习,在前几篇文章曾经介绍过机器学习的基础知识,包括了监督学习和无监督学习,有兴趣的朋友可以阅读< Python 机器学习实战 >.而深度学习开始只 ...

  9. TensorFlow 2.0 深度学习实战 —— 浅谈卷积神经网络 CNN

    前言 上一章为大家介绍过深度学习的基础和多层感知机 MLP 的应用,本章开始将深入讲解卷积神经网络的实用场景.卷积神经网络 CNN(Convolutional Neural Networks,Conv ...

随机推荐

  1. 20190818 [ B ]-½

    请看到这个蒟蒻博客的人注意一下. 这是简单的[ B ]场考试,如果需要[ A ]场题解请去神犇们的blog. [ B ]场不需要题解,恩? 太蒟蒻了QAQ 考试过程: 怀着我是蒟蒻我怕谁的心情. 首先 ...

  2. MarioTCP, take it..

    MrioTCP,超级马里奥,顾名思义,他不仅高效,而且超级简易和好玩.同时他可以是一个很简洁的Linux C 开发学习工程.毫不夸张的说,如果全部掌握这一个工程,你会成为一个Linux C的牛人:当然 ...

  3. maven打包时无法识别lombok中@Data生成的get set方法

    开发中使用了lombok,在使用maven编译打包时发现识别不了lombok通过注解@Data在实体类中生成的get,set方法.通过在网上的一篇博客找到了解决的办法,将maven-compiler- ...

  4. Codefroces 213E. Two Permutations

    E. Two Permutations time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  5. sklearn之特征提取(文本特征)

    1.引言 关于文本的提取有很多方法,本文主要探索下sklearn官方的文本特征提取功能. 2.文本特征提取 文本分析是机器学习算法的主要应用领域. 然而,原始数据,符号文字序列不能直接传递给算法,因为 ...

  6. 从0开始学习 GitHub 系列之「04.向GitHub 提交代码」

    之前的这篇文章「从0开始学习 GitHub 系列之「Git速成」」相信大家都已经对 Git 的基本操作熟悉了,但是这篇文章只介绍了对本地 Git 仓库的基本操作,今天我就来介绍下如何跟远程仓库一起协作 ...

  7. hive行转列的高级用法later view explode

    先贴出一个示例: 参考链接

  8. WebWork(在主线程创建子进程)

    WebWork浅谈 前言: 都知道JS是单线程语言,最让人头疼的莫过于在网络正常的情况下经常出现页面的假死, 以及在进行大量的for循环计算时会导致线程阻塞,由于要进行大量的计算JS后面的运行会被阻隔 ...

  9. [Vue CLI 3] Uglify 相关的应用和设计

    在本文开始之前,先留一个问题? 如果在新版本我想加一个 drop_console 的配置呢? 在老版本的脚手架生成的配置中,对于线上环境的文件:webpack.prod.conf.js 使用了插件:u ...

  10. TYVJ1340 送礼物

    P1340 送礼物 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 作为惩罚,GY被遣送去帮助某神牛给女生送礼物(GY:貌似是个好差事)但是在GY看到礼物之后 ...