tensorflow 保存模型和取出中间权重例子


Posted in Python onJanuary 24, 2020

下面代码的功能是先训练一个简单的模型,然后保存模型,同时保存到一个pb文件当中,后续可以从pd文件里读取权重值。

import tensorflow as tf
import numpy as np
import os
import h5py
import pickle
from tensorflow.python.framework import graph_util
from tensorflow.python.platform import gfile
#设置使用指定GPU
os.environ['CUDA_VISIBLE_DEVICES'] = '1'
#下面这段代码是在训练好之后将所有的权重名字和权重值罗列出来,训练的时候需要注释掉
reader = tf.train.NewCheckpointReader('./model.ckpt-100')
variables = reader.get_variable_to_shape_map()
for ele in variables:
  print(ele)
  print(reader.get_tensor(ele))


x = tf.placeholder(tf.float32, shape=[None, 1])
y = 4 * x + 4

w = tf.Variable(tf.random_normal([1], -1, 1))
b = tf.Variable(tf.zeros([1]))
y_predict = w * x + b


loss = tf.reduce_mean(tf.square(y - y_predict))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

isTrain = False#设成True去训练模型
train_steps = 100
checkpoint_steps = 50
checkpoint_dir = ''


saver = tf.train.Saver() # defaults to saving all variables - in this case w and b
x_data = np.reshape(np.random.rand(10).astype(np.float32), (10, 1))

with tf.Session() as sess:
  sess.run(tf.global_variables_initializer())
  if isTrain:
    for i in xrange(train_steps):
      sess.run(train, feed_dict={x: x_data})
      if (i + 1) % checkpoint_steps == 0:
        saver.save(sess, checkpoint_dir + 'model.ckpt', global_step=i+1)
  else:
    ckpt = tf.train.get_checkpoint_state(checkpoint_dir)
    if ckpt and ckpt.model_checkpoint_path:
      saver.restore(sess, ckpt.model_checkpoint_path)
    else:
      pass   
    print(sess.run(w))
    print(sess.run(b))
    graph_def = tf.get_default_graph().as_graph_def()
    #通过修改下面的函数,个人觉得理论上能够实现修改权重,但是很复杂,如果哪位有好办法,欢迎指教
    output_graph_def = graph_util.convert_variables_to_constants(sess, graph_def, ['Variable'])
    with tf.gfile.FastGFile('./test.pb', 'wb') as f:
      f.write(output_graph_def.SerializeToString())


with tf.Session() as sess:
#对应最后一部分的写,这里能够将对应的变量取出来
  with gfile.FastGFile('./test.pb', 'rb') as f:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(f.read())
  res = tf.import_graph_def(graph_def, return_elements=['Variable:0'])
  print(sess.run(res))
  print(sess.run(graph_def))

以上这篇tensorflow 保存模型和取出中间权重例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python选择排序算法的实现代码
Nov 21 Python
Python中的进程分支fork和exec详解
Apr 11 Python
老生常谈python函数参数的区别(必看篇)
May 29 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
Jun 16 Python
python实现八大排序算法(1)
Sep 14 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
tensorflow2.0的函数签名与图结构(推荐)
Apr 28 Python
详解python模块pychartdir安装及导入问题
Oct 22 Python
PyTorch预训练Bert模型的示例
Nov 17 Python
python 模拟登陆163邮箱
Dec 15 Python
tensorflow 模型权重导出实例
Jan 24 #Python
在Tensorflow中查看权重的实现
Jan 24 #Python
tensorflow求导和梯度计算实例
Jan 23 #Python
Tensorflow的梯度异步更新示例
Jan 23 #Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 #Python
Tensorflow实现部分参数梯度更新操作
Jan 23 #Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 #Python
You might like
PHP安全配置
2006/12/06 PHP
php对称加密算法示例
2014/05/07 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
通过修改referer下载文件的方法
2008/05/11 Javascript
js原型链原理看图说明
2012/07/07 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
Python简单实现控制电脑的方法
2018/01/22 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
python基于event实现线程间通信控制
2020/01/13 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
CSS3 文字动画效果
2020/11/12 HTML / CSS
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
T3官网:头发造型工具
2019/12/26 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
建筑工地宣传标语
2014/06/18 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers