TensorFlow 2.0 將包含許多 API 變更,例如,對(duì)參數(shù)進(jìn)行重新排序、重新命名符號(hào)和更改參數(shù)的默認(rèn)值。手動(dòng)執(zhí)行所有這些變更不僅枯燥乏味,而且容易出錯(cuò)。為簡化變更過程并讓您盡可能順暢地過渡到 TensorFlow 2.0,TensorFlow 工程團(tuán)隊(duì)創(chuàng)建了實(shí)用程序 tf_upgrade_v2,可幫助您將舊代碼轉(zhuǎn)換至新 API。
傳送門:
tf_upgrade_v2:https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/upgrade.md
使用 pip 安裝 TensorFlow 2.0 時(shí),系統(tǒng)會(huì)自動(dòng)添加 tf_upgrade_v2 實(shí)用程序。該程序可將現(xiàn)有的 TensorFlow 1.13 Python 腳本轉(zhuǎn)換為 TensorFlow 2.0,以幫助加快您的升級(jí)過程。
我們已嘗試自動(dòng)化處理盡可能多的升級(jí)任務(wù),但腳本仍無法處理一些句法和風(fēng)格方面的變更。
某些 API 符號(hào)可能無法僅使用字符串替代方案簡單升級(jí)。為確保 TensorFlow 2.0 仍支持您的代碼,升級(jí)腳本加入了 compat.v1 模塊。此模塊將以等效的 tf.compat.v1.foo 引用代替表單 tf.foo 的調(diào)用。不過,建議您手動(dòng)檢查此類替代方案,并盡快將其遷移至 tf.* 命名空間(代替 tf.compat.v1.* 命名空間)中的新 API。
此外,由于我們棄用了某些模塊(例如 tf.flags 和 tf.contrib),您將無法通過切換至 compat.v1 來實(shí)現(xiàn) TensorFlow 2.0 中的某些變更。升級(jí)使用這些模塊的代碼可能需要額外使用一個(gè)庫(如 absl.flags)或切換至 tensorflow/addons 中的軟件包。
傳送門:
tensorflow/addons:
https://github.com/tensorflow/addons
如果您想嘗試將模型從 TensorFlow 1.12 升級(jí)至 TensorFlow 2.0,請(qǐng)按照下方說明執(zhí)行操作:
首先,安裝 tf-nightly-2.0-preview / tf-nightly-gpu-2.0-preview。注意:使用 pip 安裝 TensorFlow 1.13 及以上版本(包括 nightly 2.0 構(gòu)建版)時(shí),系統(tǒng)會(huì)自動(dòng)安裝 tf_upgrade_v2。
您可以在單個(gè) Python 文件上運(yùn)行升級(jí)腳本:
tf_upgrade_v2 --infile foo.py --outfile foo-upgraded.py
您也可以在目錄樹上運(yùn)行升級(jí)腳本:
# 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
此腳本還會(huì)列出詳細(xì)的變更,例如參數(shù)重命名:
添加關(guān)鍵字:
以及推薦進(jìn)行的任何手動(dòng)檢查情況:
所有這些信息將導(dǎo)出至主目錄的 report.txt 文件中。在 tf_upgrade_v2 運(yùn)行升級(jí)后的腳本并將其導(dǎo)出后,您便可運(yùn)行模型并進(jìn)行檢查,以確保您的輸出與 TensorFlow 1.13 類似:
注意:
在運(yùn)行此腳本前,請(qǐng)勿手動(dòng)升級(jí)部分代碼。特別要注意的是,在對(duì)函數(shù)中的 tf.argmax 或 tf.batch_to_space 等參數(shù)進(jìn)行重新排序后,腳本會(huì)錯(cuò)誤地添加關(guān)鍵字參數(shù)并導(dǎo)致現(xiàn)有的代碼發(fā)生錯(cuò)誤映射
此腳本不會(huì)對(duì)參數(shù)進(jìn)行重新排序。相反,此腳本會(huì)將關(guān)鍵字參數(shù)添加至對(duì)自身參數(shù)進(jìn)行重新排序的函數(shù)中
如要報(bào)告升級(jí)腳本錯(cuò)誤或發(fā)出功能請(qǐng)求,請(qǐng)?jiān)?GitHub 上提交問題。
-
API
+關(guān)注
關(guān)注
2文章
1499瀏覽量
61958 -
代碼
+關(guān)注
關(guān)注
30文章
4779瀏覽量
68520 -
tensorflow
+關(guān)注
關(guān)注
13文章
329瀏覽量
60527
原文標(biāo)題:請(qǐng)注意更新TensorFlow 2.0的舊代碼
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論