• 模型文件(checkpoint)对模型参数的储存与恢复


    1.  模型参数的保存:

    import tensorflow as tf
    w=tf.Variable(0.0,name='graph_w')
    ww=tf.Variable(tf.random_normal(shape=(2,3),stddev=0.5),name='graph_ww')
    # double=tf.multiply(2.0,w)
    saver=tf.train.Saver({'weights_w':w,'weights_ww':ww}) # 此处模型文件关键字可以自己命名,如weights_w与weights_ww
    # 关键字所对应的值名字为变量w与ww,而不是graph_w与graph_ww,否则会报错。{'weights_w':w,'weights_ww':ww}为模型文件
    # 需要保存的变量,用字典形式书写出来,若无此字典,默认保存全部。
    sess=tf.Session()
    sess.run(tf.global_variables_initializer())
    for i in range(4):
    d=sess.run(tf.assign_add(w,2)) # 这一步对w进行计算,得到最后值为8,最终将其保存saver种
    # 其中 w 必须为变量名为w,不能是graph中的graph_w,否则会报错
    print(d)
    print('w=',sess.run(w))
    print('ww=',sess.run(ww))
    saver.save(sess,'test.ckpt')




    2. 模型参数的恢复:

    import tensorflow as tf
    restore_w=tf.Variable(0.0,name='weights_w')
    restore_ww=tf.Variable(tf.random_normal(shape=(2,3),stddev=0.5),name='weights_ww') # 尽管有初始值,但未调用tf.global_variables_initializer()此函数,则不会将其初始值赋值给该变量
    # restore_w与restore_ww分别对应保存变量的w与ww的恢复,若想恢复则graph必须是对应保存变量名对应字典的关键字,
    # 否则将会报错。即恢复对应变量参数的变量名字可以自己重新命名,但graph中的名字必须是字典关键字。
    double=tf.multiply(2.0,restore_w)
    saver=tf.train.Saver()
    sess=tf.Session()
    saver.restore(sess,'test.ckpt')
    f=sess.run(double)
    print(f)
    print('restore_ww=',sess.run(restore_ww))

    总结:
      ① 变量初始化有2种方法,若不调用tf.global_variables_initializer()或tf.variables_initializer()函数就不会将变量restore_ww=tf.Variable(tf.random_normal(shape=(2,3),stddev=0.5),name='weights_ww')
        初始化。相反,使用saver.restore()将其变量初始化了。同时,也说明变量初始化才不会报错。
      ② 模型参数以字典形式保存,其key可自己命名,其value必须为变量(非graph的name)。
      ③ 模型参数恢复对应变量可以自己命名,但对应变量中graph的name必须是保存模型参数对应变量的关键字(key)。



  • 相关阅读:
    linux 批量替换内容
    在Linux下如何查CC攻击?
    mysql init_connect
    利用javascript对字符串加密
    js学习笔记10----字符串的基本操作
    js学习笔记9----时间操作
    3种方法实现列表自动滚动
    如何解决wow.js与fullpage的兼容性
    js兼容获取元素的样式
    用php去除bom头
  • 原文地址:https://www.cnblogs.com/tangjunjun/p/11682065.html
Copyright © 2020-2023  润新知