tensorflow 模型权重导出实例
tensorflow在保存权重模型时多使用tf.train.Saver().save 函数进行权重保存,保存的ckpt文件无法直接打开,不利于将模型权重导入到其他框架使用(如Caffe、Keras等)。
好在tensorflow提供了相关函数 tf.train.NewCheckpointReader 可以对ckpt文件进行权重查看,因此可以通过该函数进行数据导出。
import tensorflow as tf import h5py cpktLogFileName = r'./checkpoint/checkpoint' #cpkt 文件路径 with open(cpktLogFileName, 'r') as f: #权重节点往往会保留多个epoch的数据,此处获取最后的权重数据 cpktFileName = f.readline().split('"')[1] h5FileName = r'./model/net_classification.h5' reader = tf.train.NewCheckpointReader(cpktFileName) f = h5py.File(h5FileName, 'w') t_g = None for key in sorted(reader.get_variable_to_shape_map()): # 权重名称需根据自己网络名称自行修改 if key.endswith('w') or key.endswith('biases'): keySplits = key.split(r'/') keyDict = keySplits[1] + '/' + keySplits[1] + '/' + keySplits[2] f[keyDict] = reader.get_tensor(key)
以上这篇tensorflow 模型权重导出实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
tensorflow 输出权重到csv或txt的实例
实例如下所示: import numpy as np W_val, b_val = sess.run([weights_tensor, biases_tensor]) np.savetxt("W.csv", W_val, delimiter=",") np.savetxt("b.csv", b_val, delimiter=",") 以上这篇tensorflow 输出权重到csv或txt的实例就是小编分享给大家的全部内容了,希
-
Tensorflow读取并输出已保存模型的权重数值方式
这篇文章是为了对网络模型的权重输出,可以用来转换成其他框架的模型. import tensorflow as tf from tensorflow.python import pywrap_tensorflow #首先,使用tensorflow自带的python打包库读取模型 model_reader = pywrap_tensorflow.NewCheckpointReader(r"model.ckpt") #然后,使reader变换成类似于dict形式的数据 var_dict =
-
tensorflow输出权重值和偏差的方法
使用tensorflow 训练模型时,我们可以使用 tensorflow自带的 Save模块 tf.train.Saver()来保存模型,使用方式很简单 就是在训练完模型后,调用saver.save()即可 saver = tf.train.Saver(write_version=tf.train.SaverDef.V2) saver.save(sess, save_dir+"crfmodel.ckpt", global_step=0) 重新载入模型 saver = tf.train.
-
在Tensorflow中查看权重的实现
刚开始学习tensorflow,还不太会用,开个博记录,今天遇到一个问题是用tf.layers.dense创建的全连接层,如何查看权重? 知道kernel表示了权重,但是如何提示成变量? 我分成两步: 1.查看tensor:tf.trainable_variables() 命令行里中运行即可,如下图: 可以看到tensor的name,或用更简洁的方式:variable_name = [v.name for v in tf.trainable_variables()] 运行后,trainable_
-
TensorFlow中权重的随机初始化的方法
一开始没看懂stddev是什么参数,找了一下,在tensorflow/python/ops里有random_ops,其中是这么写的: def random_normal(shape, mean=0.0, stddev=1.0, dtype=types.float32, seed=None, name=None): """Outputs random values from a normal distribution. Args: shape: A 1-D integer Te
-
tensorflow 保存模型和取出中间权重例子
下面代码的功能是先训练一个简单的模型,然后保存模型,同时保存到一个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.envi
-
tensorflow 模型权重导出实例
tensorflow在保存权重模型时多使用tf.train.Saver().save 函数进行权重保存,保存的ckpt文件无法直接打开,不利于将模型权重导入到其他框架使用(如Caffe.Keras等). 好在tensorflow提供了相关函数 tf.train.NewCheckpointReader 可以对ckpt文件进行权重查看,因此可以通过该函数进行数据导出. import tensorflow as tf import h5py cpktLogFileName = r'./checkpoi
-
将TensorFlow的模型网络导出为单个文件的方法
有时候,我们需要将TensorFlow的模型导出为单个文件(同时包含模型架构定义与权重),方便在其他地方使用(如在c++中部署网络).利用tf.train.write_graph()默认情况下只导出了网络的定义(没有权重),而利用tf.train.Saver().save()导出的文件graph_def与权重是分离的,因此需要采用别的方法. 我们知道,graph_def文件中没有包含网络中的Variable值(通常情况存储了权重),但是却包含了constant值,所以如果我们能把Variable
-
tensorflow 只恢复部分模型参数的实例
我就废话不多说了,直接上代码吧! import tensorflow as tf def model_1(): with tf.variable_scope("var_a"): a = tf.Variable(initial_value=[1, 2, 3], name="a") vars = [var for var in tf.trainable_variables() if var.name.startswith("var_a")] prin
-
从训练好的tensorflow模型中打印训练变量实例
从tensorflow 训练后保存的模型中打印训变量:使用tf.train.NewCheckpointReader() import tensorflow as tf reader = tf.train.NewCheckpointReader('path/alexnet/model-330000') dic = reader.get_variable_to_shape_map() print dic 打印变量 w = reader.get_tensor("fc1/W") print t
-
tensorflow模型继续训练 fineturn实例
解决tensoflow如何在已训练模型上继续训练fineturn的问题. 训练代码 任务描述: x = 3.0, y = 100.0, 运算公式 x×W+b = y,求 W和b的最优解. # -*- coding: utf-8 -*-) import tensorflow as tf # 声明占位变量x.y x = tf.placeholder("float", shape=[None, 1]) y = tf.placeholder("float", [None,
-
tensorflow模型保存、加载之变量重命名实例
话不多说,干就完了. 变量重命名的用处? 简单定义:简单来说就是将模型A中的参数parameter_A赋给模型B中的parameter_B 使用场景:当需要使用已经训练好的模型参数,尤其是使用别人训练好的模型参数时,往往别人模型中的参数命名方式与自己当前的命名方式不同,所以在加载模型参数时需要对参数进行重命名,使得代码更简洁易懂. 实现方法: 1).模型保存 import os import tensorflow as tf weights = tf.Variable(initial_value
-
TensorFlow Saver:保存和读取模型参数.ckpt实例
在使用TensorFlow的过程中,保存模型参数变量是很重要的一个环节,既可以保证训练过程信息不丢失,也可以帮助我们在需要快速恢复或使用一个模型的时候,利用之前保存好的参数之间导入,可以节省大量的训练时间.本文通过最简单的例程教大家如何保存和读取.ckpt文件. 一.保存到文件 首先是导入必要的东西: import tensorflow as tf import numpy as np 随便写几个变量: # Save to file # remember to define the same d
-
Tensorflow 模型转换 .pb convert to .lite实例
2017年底,Tensorflow 推出Lite版本,可实现移动端的快速运行,其中,一个很关键的问题,如何把现有分类模型(.pb) 转换为(.lite)模型呢? 其实,步骤如下 1- 进入 Tensorflow 源码文件夹(以便bazel可以无需配置找打相应路径) 2- 转换可执行文件 bazel run --config=opt \ //tensorflow/contrib/lite/toco:toco -- \ --input_file=/tmp/mobilenet_v1_1.0_224_f
-
浅谈Tensorflow模型的保存与恢复加载
近期做了一些反垃圾的工作,除了使用常用的规则匹配过滤等手段,也采用了一些机器学习方法进行分类预测.我们使用TensorFlow进行模型的训练,训练好的模型需要保存,预测阶段我们需要将模型进行加载还原使用,这就涉及TensorFlow模型的保存与恢复加载. 总结一下Tensorflow常用的模型保存方式. 保存checkpoint模型文件(.ckpt) 首先,TensorFlow提供了一个非常方便的api,tf.train.Saver()来保存和还原一个机器学习模型. 模型保存 使用tf.trai
随机推荐
- jQuery UI Grid 模态框中的表格实例代码
- 将 html 转成 ubb代码的小脚本
- 详解iOS中多个网络请求的同步问题总结
- Django中对数据查询结果进行排序的方法
- php实例分享之通过递归实现删除目录下的所有文件详解
- php入门学习知识点四 PHP正则表达式基本应用
- asp存储过程使用大全
- ajax 的post方法实例(带循环)
- PHP处理Oracle的CLOB实例
- JS实现浏览器状态栏显示时间的方法
- 收藏的精美的Flash 透明背景 提供下载
- Javascript使用post方法提交数据实例
- javascript arguments 传递给函数的隐含参数
- 必须点击广告才能进入的代码
- 详解node-ccap模块生成captcha验证码
- 微信小程序tabBar底部导航中文注解api详解
- [注册表]让光驱运行得更快
- odbcasvc.exe导致CPU使用100%问题的解决办法
- Java concurrency之AtomicLong原子类_动力节点Java学院整理
- PyQt5 对图片进行缩放的实例