TensorFlow:实战Google深度学习框架(三)模型保存和持久化

  1. tensorflow提供API可以实现神经网络的保存和还原        tf.train.Saver()类


     

  2.  


  3. 模型的加载


  4. 模型的加载还可以用另外一种方式实现


  5. 加载部分变量,把类tf.train.Saver()变成tf.train.Saver([v1]),就可以实现只加载v1变量


  6. 如果用类tf.train.Saver(),而不是指定要加载的变量时,就要保证需要加载的变量都在模型中,否则模型会报错


  7. 保存和加载时可以给变量重命名


    1. 变量重命名的目的之一是为了方便使用变量的滑动平均值(由于滑动平均之可以使神经网路模型更加鲁棒);tensorflow中的滑动平均值是通过影子变量进行维护的,所以要获取变量的滑动值实际上就是获取这个影子变量的值,那么在使用训练好的模型时不再需要调用函数获取变量的滑动平均值,只需要在加载时将影子变量的值映射到变量本身即可


       

    2. 示例:


    3. 为了方便加载时重命名滑动平均变量,tf.train.ExponentialMovingAverage类提供了variable_to_restore函数来生成tf,train.Saver()类所需要的变量重命名字典。


       

  8. 将训练好的计算图中的变量及其取值通过常量的方式保存


     

    1. ,这样可以在加载模型时,只要指定要加载的张量的名称就可以将对应的张量的值加载进来,不用再进行重新的训练


    2. 对应1中计算图的加载 


                                                        

    3. 做一个接口用以输入数据


                                      

  9. 持久化的原理及数据格式


  10. json文件中保存的模型信息分析


    1. meta_info_def属性


    2. graph_def属性


    3. saver_def属性


    4. collection_def属性


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值