TensorFlow低版本代码自动升级为1.0版本

(编辑:jimmy 日期: 2025/2/25 浏览:2)

Reference:
https://www.tensorflow.org/install/migration

tensorflow 更新到1.0之后,0.n版本不兼容,除了手动更改代码之外,tensorflow官方还提供了自动更新的脚本。

下载链接:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/compatibility

使用方法:

更新一个文件:

原本代码为foo.py, 使用tf_upgrade.py自动升级为1.0版本,新的文件名为foo-upgraded.py:

tf_upgrade.py --infile foo.py --outfile foo-upgraded.py

目录下的所有文件都更新:

 tf_upgrade.py --intree InputDir --outtree OutputDir

目录下的所有文件都更新,并复制除了python文件之外的其他文件到新文件夹:

运行之后所有.py文件都会更新并放在OutputDir目录下,如果想要目录中的其他文件(.txt等)也复制到新的文件夹,可以设置

copyotherfiles为True:
tf_upgrade.py --intree InputDir --outtree OutputDir --copyotherfiles True

更新完毕后脚本会自动生成一个log文件,其中包含了更新的内容。

third_party/tensorflow/tools/compatibility/test_file_v0.11.py Line 125

Renamed keyword argument from `dim` to `axis`
Renamed keyword argument from `squeeze_dims` to `axis`

  Old:          [[1, 2, 3]], dim=1), squeeze_dims=[1]).eval(),
                    ~~~~  ~~~~~~~~~~~~~
  New:          [[1, 2, 3]], axis=1), axis=[1]).eval(),
                    ~~~~~  ~~~~~

拓展阅读

tf_upgrade.py 有一些局限性:

  • 它不能改变 tf.reverse() 的参数,因此必须手动修复。
  • 对于参数列表重新排序的方法,如 tf.split() 和 tf.reverse_split(),它会尝试引入关键字参数,但实际上并不能重新排列参数。

有些结构必须手动替换,例如:

tf.get.variable_scope().reuse_variables() 

替换为:

with tf.variable_scope(tf.get.variable_scope(),reuse=True):
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?