tensorflow隨筆-訓練檢查點tf.train.Saver(2)
阿新 • • 發佈:2018-12-10
#!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Thu Sep 6 10:16:37 2018 @author: myhaspl @email:[email protected] """ import tensorflow as tf import os g1=tf.Graph() with g1.as_default(): with tf.name_scope("input_Variable"): my_var=tf.Variable(1,dtype=tf.float32) with tf.name_scope("global_step"): my_step=tf.Variable(0,dtype=tf.int32) with tf.name_scope("update"): varop=tf.assign(my_var,tf.multiply(tf.log(tf.add(my_var,1)),1)) stepop=tf.assign_add(my_step,1) addop=tf.group([varop,stepop]) with tf.name_scope("summaries"): tf.summary.scalar('myvar',my_var) with tf.name_scope("global_ops"): init=tf.global_variables_initializer() merged_summaries=tf.summary.merge_all() with tf.Session(graph=g1) as sess: writer=tf.summary.FileWriter('sum_vars',sess.graph) sess.run(init) #---0 step,var,summary=sess.run([my_step,my_var,merged_summaries]) writer.add_summary(summary,global_step=step) print step,var saver=tf.train.Saver() #1-49 #如果之前儲存了檢查點檔案,則恢復模型後,繼續 init_step=1 ckpt=tf.train.get_checkpoint_state(os.getcwd()+'/myvar-model') if ckpt and ckpt.model_checkpoint_path: saver.restore(sess,ckpt.model_checkpoint_path) init_step=int(ckpt.model_checkpoint_path.rsplit('-',1)[1]) print "讀取檢查點檔案..." for i in xrange(init_step,100): sess.run(addop) step,var,summary=sess.run([my_step,my_var,merged_summaries]) writer.add_summary(summary,global_step=step) print step,var if i%5==0 and i<50: saver.save(sess,'./myvar-model/myvar-model',global_step=i) writer.flush() writer.close()
上面程式碼跑第一次時,檢查點檔案被儲存,跑第二次開始,檢查點檔案將被讀取,迴圈次數從step=50開始。
0 1.0
1 0.6931472
2 0.52658904
3 0.42303586
4 0.35279253
5 0.302171
6 0.26403287
7 0.2343073
8 0.21050993
9 0.1910417
...
...
...
93 0.021334965
94 0.02111056
95 0.02089082
96 0.0206756
97 0.020464761
98 0.020258171
99 0.020055704