国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

tensorflow1.0學習之模型的保存與恢復(Saver)

2020-02-22 23:50:08
字體:
來源:轉載
供稿:網友

將訓練好的模型參數保存起來,以便以后進行驗證或測試,這是我們經常要做的事情。tf里面提供模型保存的是tf.train.Saver()模塊。

模型保存,先要創建一個Saver對象:如

saver=tf.train.Saver()

在創建這個Saver對象的時候,有一個參數我們經常會用到,就是 max_to_keep 參數,這個是用來設置保存模型的個數,默認為5,即 max_to_keep=5,保存最近的5個模型。如果你想每訓練一代(epoch)就想保存一次模型,則可以將 max_to_keep設置為None或者0,如:

saver=tf.train.Saver(max_to_keep=0)

但是這樣做除了多占用硬盤,并沒有實際多大的用處,因此不推薦。

當然,如果你只想保存最后一代的模型,則只需要將max_to_keep設置為1即可,即

saver=tf.train.Saver(max_to_keep=1)

創建完saver對象后,就可以保存訓練好的模型了,如:

saver.save(sess,'ckpt/mnist.ckpt',global_step=step)

第一個參數sess,這個就不用說了。第二個參數設定保存的路徑和名字,第三個參數將訓練的次數作為后綴加入到模型名字中。

saver.save(sess, 'my-model', global_step=0) ==>      filename: 'my-model-0'
 ...
 saver.save(sess, 'my-model', global_step=1000) ==> filename: 'my-model-1000'

看一個mnist實例:

# -*- coding: utf-8 -*-"""Created on Sun Jun 4 10:29:48 2017@author: Administrator"""import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST_data/", one_hot=False)x = tf.placeholder(tf.float32, [None, 784])y_=tf.placeholder(tf.int32,[None,])dense1 = tf.layers.dense(inputs=x,            units=1024,            activation=tf.nn.relu,           kernel_initializer=tf.truncated_normal_initializer(stddev=0.01),           kernel_regularizer=tf.nn.l2_loss)dense2= tf.layers.dense(inputs=dense1,            units=512,            activation=tf.nn.relu,           kernel_initializer=tf.truncated_normal_initializer(stddev=0.01),           kernel_regularizer=tf.nn.l2_loss)logits= tf.layers.dense(inputs=dense2,             units=10,             activation=None,            kernel_initializer=tf.truncated_normal_initializer(stddev=0.01),            kernel_regularizer=tf.nn.l2_loss)loss=tf.losses.sparse_softmax_cross_entropy(labels=y_,logits=logits)train_op=tf.train.AdamOptimizer(learning_rate=0.001).minimize(loss)correct_prediction = tf.equal(tf.cast(tf.argmax(logits,1),tf.int32), y_)  acc= tf.reduce_mean(tf.cast(correct_prediction, tf.float32))sess=tf.InteractiveSession() sess.run(tf.global_variables_initializer())saver=tf.train.Saver(max_to_keep=1)for i in range(100): batch_xs, batch_ys = mnist.train.next_batch(100) sess.run(train_op, feed_dict={x: batch_xs, y_: batch_ys}) val_loss,val_acc=sess.run([loss,acc], feed_dict={x: mnist.test.images, y_: mnist.test.labels}) print('epoch:%d, val_loss:%f, val_acc:%f'%(i,val_loss,val_acc)) saver.save(sess,'ckpt/mnist.ckpt',global_step=i+1)sess.close()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文安县| 武陟县| 兴安县| 黄冈市| 阿坝| 高唐县| 文登市| 衡水市| 伊通| 德兴市| 凤山市| 溆浦县| 峨边| 吉首市| 柳江县| 左贡县| 修水县| 祥云县| 垦利县| 扎赉特旗| 绥中县| 遂昌县| 武乡县| 阿合奇县| 岑溪市| 井陉县| 鹤山市| 东兰县| 苏尼特左旗| 阜康市| 若尔盖县| 聂拉木县| 杭锦后旗| 宜黄县| 古蔺县| 大足县| 曲沃县| 旬邑县| 福海县| 泗阳县| 临颍县|