tensorflow轉(zhuǎn)換ckpt為savermodel模型的實(shí)現(xiàn)
ckpt轉(zhuǎn)換成SavedModel
convert_ckpt_to_savermodel.py
import tensorflow as tf import sys trained_checkpoint_prefix = sys.argv[1] export_dir = sys.argv[2] graph = tf.Graph() config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True) with tf.compat.v1.Session(graph=graph, config=config) as sess: # Restore from checkpoint loader = tf.compat.v1.train.import_meta_graph(trained_checkpoint_prefix + '.meta') loader.restore(sess, trained_checkpoint_prefix) # Export checkpoint to SavedModel builder = tf.compat.v1.saved_model.builder.SavedModelBuilder(export_dir) builder.add_meta_graph_and_variables(sess, [tf.saved_model.TRAINING, tf.saved_model.SERVING], strip_default_attrs=True) builder.save()
假設(shè)已經(jīng)生成了ckpt模型
checkpoint hello_model.data-00000-of-00001 hello_model.index hello_model.meta
python ./convert_ckpt_to_savermodel.py hello_model ./save
會(huì)在save目錄下生成
save
├── saved_model.pb
└── variables
├── variables.data-00000-of-00001
└── variables.index
補(bǔ)充知識(shí):tensorflow serving模型轉(zhuǎn)換
tf serving是一款靈活的高性能機(jī)器學(xué)習(xí)服務(wù)系統(tǒng),專為生產(chǎn)環(huán)境而設(shè)計(jì)。通過(guò)它可以輕松部署新算法和實(shí)驗(yàn),同時(shí)保持服務(wù)框架和API不變。它提供了與tensorflow模型的即是可用集成,但很容易擴(kuò)展以便服務(wù)其他類型的模型和數(shù)據(jù)。
tf serving的安裝過(guò)程這里不多說(shuō),大家可以百度。
此處主要介紹tensorflow模型在docker中轉(zhuǎn)換時(shí)的修改內(nèi)容。
修改inception_saved_model.py文件中的內(nèi)容,主要包括:image_size,NUM_CLASSES,SYNSET_FILE,METADATA_FILE變量的內(nèi)容,必要時(shí)修改model_version,NUM_TOP_CLASSES。
修改inception_model.py文件中的內(nèi)容,包括從nets文件夾中導(dǎo)入所需網(wǎng)絡(luò)的信息,修改inference函數(shù)中對(duì)應(yīng)的網(wǎng)絡(luò)名稱。
from nets.inception_v1 import inception_v1, inception_v1_arg_scope with slim.arg_scope(inception_v1_arg_scope()): logits, endpoints = inception_v1( images, dropout_keep_prob=0.8, num_classes=num_classes, is_training=for_training, scope=scope)
另,使用CUDA環(huán)境時(shí),需要添加環(huán)境及bazel編譯的配置項(xiàng)
export TF_NEED_CUDA=1
bazel build -c opt --config=cuda tf_models/slim:inception_saved_model
ps,關(guān)于gpu的設(shè)置如下:
export CUDA_VISIBLE_DEVICES='0,1' #shell環(huán)境 import os os.environ["CUDA_VISIBLE_DEVICES"] = "0,1" #python環(huán)境
以上這篇tensorflow轉(zhuǎn)換ckpt為savermodel模型的實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
神經(jīng)網(wǎng)絡(luò)python源碼分享
這篇文章主要介紹了神經(jīng)網(wǎng)絡(luò)python源碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12Python lambda表達(dá)式用法實(shí)例分析
這篇文章主要介紹了Python lambda表達(dá)式用法,結(jié)合實(shí)例形式分析了lambda表達(dá)式的具體功能、應(yīng)用場(chǎng)景及相關(guān)使用技巧,需要的朋友可以參考下2018-12-12使用Python爬取Json數(shù)據(jù)的示例代碼
這篇文章主要介紹了使用Python爬取Json數(shù)據(jù)的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Python3去除頭尾指定字符的函數(shù)strip()、lstrip()、rstrip()用法詳解
這篇文章主要介紹了Python3去除頭尾指定字符的函數(shù)strip()、lstrip()、rstrip()用法詳解,需要的朋友可以參考下2021-04-04Python實(shí)現(xiàn)批量下載文件的示例代碼
下載文件是我們?cè)谌粘9ぷ髦谐3R龅囊患虑?當(dāng)我們需要從互聯(lián)網(wǎng)上批量下載大量文件時(shí),手動(dòng)一個(gè)一個(gè)去下載顯然不夠高效,所以本文為大家介紹一下如何利用python批量下載文件吧2023-11-11Python中plt.scatter()函數(shù)的常見(jiàn)用法小結(jié)
這篇文章主要介紹了Python中plt.scatter()函數(shù)的常見(jiàn)用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04python實(shí)現(xiàn)盲盒抽獎(jiǎng)功能(減庫(kù)存)
本文主要介紹了python實(shí)現(xiàn)盲盒抽獎(jiǎng)功能,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09解決django后臺(tái)樣式丟失,css資源加載失敗的問(wèn)題
今天小編就為大家分享一篇解決django后臺(tái)樣式丟失,css資源加載失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06