對(duì)tensorflow 的模型保存和調(diào)用實(shí)例講解
我們通常采用tensorflow來訓(xùn)練,訓(xùn)練完之后應(yīng)當(dāng)保存模型,即保存模型的記憶(權(quán)重和偏置),這樣就可以來進(jìn)行人臉識(shí)別或語(yǔ)音識(shí)別了。
1.模型的保存
# 聲明兩個(gè)變量
v1 = tf.Variable(tf.random_normal([1, 2]), name="v1")
v2 = tf.Variable(tf.random_normal([2, 3]), name="v2")
init_op = tf.global_variables_initializer() # 初始化全部變量
saver = tf.train.Saver() # 聲明tf.train.Saver類用于保存模型
with tf.Session() as sess:
sess.run(init_op)
print("v1:", sess.run(v1)) # 打印v1、v2的值一會(huì)讀取之后對(duì)比
print("v2:", sess.run(v2))
#定義保存路徑,一定要是絕對(duì)路徑,且用‘/ '分隔父目錄與子目錄
saver_path = saver.save(sess, "C:/Users/Administrator/Desktop/tt/model.ckpt") # 將模型保存到save/model.ckpt文件
print("Model saved in file:", saver_path)
2.模型的讀取
直接讀取模型時(shí),可能會(huì)報(bào)錯(cuò),我是用Spyder編譯的,可以把Spyder關(guān)掉,再重新打開,就可以讀取數(shù)據(jù)了。原因可能是:在模型保存時(shí)將變量初始化了。
import tensorflow as tf
# 使用和保存模型代碼中一樣的方式來聲明變量
v1 = tf.Variable(tf.random_normal([1, 2]), name="v1")
v2 = tf.Variable(tf.random_normal([2, 3]), name="v2")
saver = tf.train.Saver() # 聲明tf.train.Saver類用于保存模型
with tf.Session() as sess:
saver.restore(sess, "C:/Users/Administrator/Desktop/tt/model.ckpt") # 即將固化到硬盤中的Session從保存路徑再讀取出來
print("v1:", sess.run(v1)) # 打印v1、v2的值和之前的進(jìn)行對(duì)比
print("v2:", sess.run(v2))
print("Model Restored")
以上這篇對(duì)tensorflow 的模型保存和調(diào)用實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python selenium登錄豆瓣網(wǎng)過程解析
這篇文章主要介紹了python selenium登錄豆瓣網(wǎng)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python enumerate() 函數(shù)如何實(shí)現(xiàn)索引功能
這篇文章主要介紹了Python enumerate() 函數(shù)如何實(shí)現(xiàn)索引功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
詳解Python匿名函數(shù)(lambda函數(shù))
這篇文章主要介紹了Python匿名函數(shù)(lambda函數(shù)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

