我們通常采用tensorflow來訓練,訓練完之后應當保存模型,即保存模型的記憶(權重和偏置),這樣就可以來進行人臉識別或語音識別了。
1.模型的保存
# 聲明兩個變量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關掉,再重新打開,就可以讀取數據了。原因可能是:在模型保存時將變量初始化了。
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 的模型保存和調用實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答