5.低版本代码自动升级为1.0版本
参考<低版本代码自动升级为1.0版本>
TensorFlow 1.x 不提供向后兼容性。这意味着在 TensorFlow 0.x 上运行的代码可能无法在 TensorFlow 1.0 上运行。因此,如果代码是用 TensorFlow 0.x 框架编写的,你需要升级它们(旧的 GitHub 存储库或你自己的代码)。这一节将指出 TensorFlow 0.x 和 TensorFlow 1.0 之间的主要区别,并展示如何使用脚本 tf_upgrade.py 自动升级 TensorFlow 1.0 的代码。
具体做法
- 从网址<github TF库>下载 tf_upgrade.py
2. 如果要将一个文件从 TensorFlow 0.x 转换为 TensorFlow 1.0,请在命令行使用以下命令:
python tf_upgrade.py --infile old_file.py --outfile upgraded_file.py
3. 例如,如果有一个名为 test.py 的 TensorFlow 程序文件,可使用下述命令,其将创建一个名为 test_1.0.py 的新文件。
python tf_upgrade.py --infile test.py --outfile test_1.0.py
4. 如果要迁移目录中的所有文件,请在命令行中使用以下命令:
![d6fbf01cfbb49d98c2085bba8f98ce60.png](https://i-blog.csdnimg.cn/blog_migrate/049d35c2f460087f485b6bd9ff65d415.jpeg)
5. 在大多数情况下,该目录还包含数据集文件;可以使用以下命令确保非 Python 文件也会被复制到新目录(上例中的 my-dir_1p0)中:
![3004d4a652049b6ba1aa01595d567f0f.png](https://i-blog.csdnimg.cn/blog_migrate/b73441a9bf97414e42503ba73be62f89.jpeg)
6. 在所有这些情况下,都会生成一个 report.txt 文件。该文件包含转换的细节和过程中的任何错误
7. 对于无法更新的部分代码,需要阅读 report.txt 文件并手动升级脚本。
拓展阅读
tf_upgrade.py 有一些局限性:
- 它不能改变 tf.reverse() 的参数,因此必须手动修复。
- 对于参数列表重新排序的方法,如 tf.split() 和 tf.reverse_split(),它会尝试引入关键字参数,但实际上并不能重新排列参数。
- 有些结构必须手动替换,例如:
![863f828d82e702e2da07e6947fe92f88.png](https://i-blog.csdnimg.cn/blog_migrate/0364ebcf16329bc4dbd9e4730c7c60ff.jpeg)
替换为:
![4c8f31e116d31542bac3f83ceb17b3d2.png](https://i-blog.csdnimg.cn/blog_migrate/72b7a6bc70747fa9bd5038ee8f96c25b.jpeg)
6. TensorFlow XLA加速线性代数编译器
这部分内容上不知道有什么用,参考<XLA加速线性代数编译器>