升級到tensorflow2.0

tensorflow2.0推出以後,全面擁抱keras,簡化了API接口,使得tensorflow在使用上宜人了很多。

從tensorflow1.x升級到2.x

方案一:依然使用tf 1.x的腳本

對於原來的1.x系列代碼,當後臺的tensorflow支持升級到2.x以後,大多數代碼並不需要重新改寫,只需要將加載tensorflow的代碼修改爲

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()

就可以了。

方案二:升級項目代碼到2.x

但是這樣做並沒有真正發揮2.x新的API帶來的新功能。爲了將1.x的項目代碼真正遷移成2.x風格的,tensorflow項目組發佈了tf_upgrade_v2腳本實現這個功能。該腳本的使用方法如下:

tf_upgrade_v2 \

  --intree my_project/ \

  --outtree my_project_v2/ \

  --reportfile report.txt

其他參數可以查看tf_upgrade_v2腳本的幫助文檔:tf_upgrade_v2 -h

但是有些API的符號並不能僅僅通過字符串替換簡單的得到。雖然大多數1.x版本tf函數的調用都可以通過修改調用函數爲tf.compat.v1.func_name()的方式得到,但是也有部分函數在2.x版本中被棄用了,例如tf.flags和tf.contrib, 另外還有一些函數可能需要調用一些其他的哭,例如absl.flags,或者將對應的函數調整到了tensorflow.addons模塊中。

鑑於以上情況,官方推薦的升級方式爲:
1)單元測試
2)安裝tensorflow 1.14, 在tf1.14版本中實際上已經包括了tf 2.0版本的代碼,封裝在tf.compat.v2模塊中。
3)用tf 1.14版本的代碼進行測試,這一步非常關鍵,確保所有的代碼在1.14版本的測試用全部通過。
4)用tf_upgrade_v2升級項目代碼
5)在用1.14版本測試升級後的代碼。
6)檢查upgrade報告中的warning和error
7)安裝tf2.0
8)測試代碼,代碼前面加入tf.disable_v2_behavior()函數,再運行測試
9)註釋掉測試代碼中的 ,用2.x的API運行。

如果遇到什麼問題可以查看官方代碼遷移指南:https://tensorflow.google.cn/guide/migrate

發佈了115 篇原創文章 · 獲贊 123 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章