tensorflow模型保存為saver = tf.train.Saver()函數,saver.save()保存模型,代碼如下:
import tensorflow as tf v1= tf.Variable(tf.random_normal([784, 200], stddev=0.35), name="v1")v2= tf.Variable(tf.zeros([200]), name="v2")saver = tf.train.Saver()with tf.Session() as sess: init_op = tf.global_variables_initializer() sess.run(init_op) saver.save(sess,"checkpoint/model_test",global_step=1)
當我們保存模型后,我們可以通過saver.restore()來加載模型,初始化變量:
import tensorflow as tf v1= tf.Variable(tf.random_normal([784, 200], stddev=0.35), name="v1")v2= tf.Variable(tf.zeros([200]), name="v2")saver = tf.train.Saver()with tf.Session() as sess: # init_op = tf.global_variables_initializer() # sess.run(init_op) saver.restore(sess, "checkpoint/model_test-1") # saver.save(sess,"checkpoint/model_test",global_step=1)
神經網絡訓練時,有時候我們需要從預訓練的模型中加載部分參數,初始化當前模型,例如加入CNN有6層,我們需要從已有的模型初始化CNN前5層參數.這可以通過saver.restore()實現.
之前我們已經介紹可以通過tf.train.Saver()的保存部分變量的方法,即需要保存的變量列表,同樣的,在變量初始化的時候,我們可以對需要單獨初始化的變量分別定義一個tf.train.Saver()函數,這樣就可以單獨對該部分變量初始化,例如下面代碼,saver1用于初始化變量v1,saver2用于初始化變量v2,v3:
import tensorflow as tf v1= tf.Variable(tf.random_normal([784, 200], stddev=0.35), name="v1")v2= tf.Variable(tf.zeros([200]), name="v2")v3= tf.Variable(tf.zeros([100]), name="v3")#saver = tf.train.Saver()saver1 = tf.train.Saver([v1])saver2 = tf.train.Saver([v2]+[v3])with tf.Session() as sess: # init_op = tf.global_variables_initializer() # sess.run(init_op) saver1.restore(sess, "checkpoint/model_test-1") saver2.restore(sess, "checkpoint/model_test-1") # saver.save(sess,"checkpoint/model_test",global_step=1)
以上這篇tensorflow 加載部分變量的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答