1. 程式人生 > >tensorflow隨筆-訓練檢查點tf.train.Saver(2)

tensorflow隨筆-訓練檢查點tf.train.Saver(2)

#!/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