我們通常采用tensorflow來訓練,訓練完之后應當保存模型,即保存模型的記憶(權重和偏置),這樣就可以來進行人臉識別或語音識別了。
1.模型的保存
1
2
3
4
5
6
7
8
9
10
11
12
|
# 聲明兩個變量 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的值一會讀取之后對比 print ( "v2:" , sess.run(v2)) #定義保存路徑,一定要是絕對路徑,且用‘/ '分隔父目錄與子目錄 saver_path = saver.save(sess, "C:/Users/Administrator/Desktop/tt/model.ckpt" ) # 將模型保存到save/model.ckpt文件 print ( "Model saved in file:" , saver_path) |
2.模型的讀取
直接讀取模型時,可能會報錯,我是用Spyder編譯的,可以把Spyder關掉,再重新打開,就可以讀取數據了。原因可能是:在模型保存時將變量初始化了。
1
2
3
4
5
6
7
8
9
10
11
|
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的值和之前的進行對比 print ( "v2:" , sess.run(v2)) print ( "Model Restored" ) |
以上這篇對tensorflow 的模型保存和調用實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/luoganttcc/article/details/70344639