tensorflow 获取变量&打印权值等方法

TensorFlow(十二)tensorflow生成的.ckpt模型的读写、使用 在前一篇中使用AlexNet模型训练了一个ckpt模型 但是在使用模型预测的时候又出现了问题 由于在生成过程中没有自定义名称导致不知道在使用的时候不知道变量名称 关于上一篇博文得到的四个模型文件 meta文件 MyModel.meta文件保存的是图结构,meta文件是pb(protocol buffer)格式文件,包含变量、op、集合等。 ckpt文件 ckpt文件是二进制文件,... 阅读详情

tensorflow 获取变量&打印权值等方法


在使用tensorflow中,我们常常需要获取某个变量的值,比如:打印某一层的权重,通常我们可以直接利用变量的name属性
来获取,但是当我们利用一些第三方的库来构造神经网络的layer时,存在一种情况:就是我们自己无法定义该层的变量,因为
是自动进行定义的。比如用tensorflow的slim库时:

def resnet_stack(images, output_shape, hparams, scope=None):
  """Create a resnet style transfer block.

  Args:
    images: [batch-size, height, width, channels] image tensor to feed as input
    output_shape: output image shape in form [height, width, channels]
    hparams: hparams objects
    scope: Variable scope

  Returns:
    Images after processing with resnet blocks.
  """
  end_points = {}
  if hparams.noise_channel:
    # separate the noise for visualization
    end_points['noise'] = images[:, :, :, -1]
  assert images.shape.as_list()[1:3] == output_shape[0:2]

  with tf.variable_scope(scope, 'resnet_style_transfer', [images]):
    with slim.arg_scope(
        [slim.conv2d],
        normalizer_fn=slim.batch_norm,
        kernel_size=[hparams.generator_kernel_size] * 2,
        stride=1):
      net = slim.conv2d(
          images,
          hparams.resnet_filters,
          normalizer_fn=None,
          activation_fn=tf.nn.relu)
      for block in range(hparams.resnet_blocks):
        net = resnet_block(net, hparams)
        end_points['resnet_block_{}'.format(block)] = net

      net = slim.conv2d(
          net,
          output_shape[-1],
          kernel_size=[1, 1],
          normalizer_fn=None,
          activation_fn=tf.nn.tanh,
          scope='conv_out')
      end_points['transferred_images'] = net
    return net, end_points

我们希望获取第一个卷积层的权重weight,该怎么办呢??

在训练时,这些可训练的变量会被tensorflow保存在 tf.trainable_variables() 中,于是我们就可以通过打印
tf.trainable_variables() 来获取该卷积层的名称(或者你也可以自己根据scope来看出来该变量的name ),
然后利用tf.get_default_grap().get_tensor_by_name 来获取该变量。举个简单的例子:

import tensorflow as tf
with tf.variable_scope("generate"):
    with tf.variable_scope("resnet_stack"):
        #简单起见,这里没有用第三方库来说明,
        bias = tf.Variable(0.0,name="bias")
        weight = tf.Variable(0.0,name="weight")

for tv in tf.trainable_variables():
    print (tv.name)

b = tf.get_default_graph().get_tensor_by_name("generate/resnet_stack/bias:0")
w = tf.get_default_graph().get_tensor_by_name("generate/resnet_stack/weight:0")

with tf.Session() as sess:
    tf.global_variables_initializer().run()
    print(sess.run(b))
    print(sess.run(w))

结果如下:




Verilog实战:手把手教你实现IEEE 754单精度浮点乘法器(附完整代码) 本文详细介绍了如何使用Verilog实现IEEE 754单精度浮点乘法器,包括标准解析、架构设计、Verilog代码实现及优化技巧。通过两级流水线设计,平衡性能与面积,适用于数字信号处理、AI加速器等高性能计算场景。 阅读详情

相关推荐

告别版本冲突!在Ubuntu 20.04上优雅实现ROS Noetic与ROS2 Foxy双环境切换

本文详细介绍了在Ubuntu 20.04系统上实现ROS Noetic(ROS1)与ROS2 Foxy双环境共存与切换的完整方案。通过智能脚本设计和工作空间隔离,解决了版本冲突问题,帮助开发者高效管理不同ROS版本项目。特别适合需要同时开发ROS1和ROS2应用的机器人开发者。

weixin_28452161的博客 387

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.Saver() ckpt = tf.train.get_checkpoint_state(FLAGS.

b241基于协同过滤算法的私人诊所管理系统-springboot+vue.zip(可运行源码+sql文件+文档)

私人诊所管理系统的开发就是为了解决私人诊所信息管理的问题,系统开发是基于Java语言编写实现,用Mysql数据库搭建存储私人诊所数据。实现后的私人诊所管理系统基于用户需求分析搭建的,并且会有个人中心,患者管理,医生管理,科室管理,出诊医生管理,预约挂号管理,预约取消管理,病历信息管理,药品信息管理,处方开具管理,留言板管理,系统管理等基本功能。不仅能满足人们对于私人诊所的需求,同时具有广阔的发展前景。当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到私人诊所管理系统的导航条。系统注册:在系统注册页面输入用户注册信息进行注册操作。出诊医生:在出诊医生页面的输入栏中输入医生姓名,选择挂号类型和出诊日期进行查询;可以查看出诊医生详细信息,还可以进行收藏或预约挂号操作。公告信息:在公告信息页面的输入栏中输入标题进行查询;可以查看公告详细信息。个人中心:在个人中心页面通过填写个人详细信息进行信息更新操作,还可以对我的收藏进行详细操作。管理员进入主页面,主要功能包括对个人中心,患者管理,医生管理,科室管理,出诊医生管理,预约挂号管理,预约取消管理,病历信息管理,药品信息管理,处方开具管理,留言板管理,系统管理等进行操作。患者进入主页面,主要功能包括对个人中心,预约挂号管理,预约取消管理,病历信息管理,处方开具管理等进行操作。医生进入主页面,主要功能包括对个人中心,出诊医生管理,预约挂号管理,预约取消管理,病历信息管理,药品信息管理,处方开具管理等进行操作。

tensorflow查看权重参数

每个框架都有查看权重参数的机制,在tenstensorflow中 查看的例子如下 import tensorflow as tf import numpy as np reader = tf.train.NewCheckpointReader('model-100') all_variables = reader.get_variable_to_shape_map() w0 = reader...

andeyeluguo的博客 1万+

TensorFlow中怎么打印Tensor对象的

TensorFlow中,如何打印Tensor对象的?对于下面这个TensorFlow矩阵乘法的例子: matrix1 = tf.constant([[3., 3.]]) matrix2 = tf.constant([[2.],[2.]]) product = tf.matmul(matrix1, matrix2) 当我打印product时,显示为一个TensorObject。 &l...

lcczzu的专栏 1万+

tensorflow中根据tensor变量的名字获取变量

根据tensor的名字获取变量 需求: 有时候使用slim这种封装好的工具,或者是在做滑动平均时,系统会帮你自动建立一些变量,但是这些变量只有名字,而没有显式的变量名,所以这个时候我们需要使用那个名字来获取其对应的。 如下: 也就是tensor的名字,以及在变量域名字,在tensorflow中tensor的名字就会被 : 域名/变量名记录下来, 在模型中我们需要用到这些tensor的时候可以...

nbxuwentao的博客 3920

2021-07-14

神经网络训练权重的提取 文章目录前言一、权重提取——利用Module named_parameters1. Module named_parameters介绍2. 对named_parameters的巧用(获取某一层权重)3. 利用得到的字典输出想要的数组4. 对于打印设置的特别说明总结参考素材: 前言 基于pytorch搭建神经网络后,通过训练过程得到权重权重数据有时需要保存在嵌入式设备的bram中,本文主要介绍将通过软件计算得到的权重以及偏置数据进行提取,以及将它们整理成合适的形式放入文本.

遥远的博客 864

Tensorflow如何打印神经网络权重参数

Tensorflow中,神经网络的权重是一个variable,所以要打印出来只需要按下面的代码即可。最重要的就是sess.run() import tensorflow as tf weight = tf.Variable(tf.random_normal([1,2])) sess = tf.Session() init = tf.global_variables_initializer(...

张欣的博客 1万+

Tensorflow 获取model中的变量列表

前言 需求来自声明saver时需要指定变量列表。 var_list = saver._var_list print(type(var_list[0])) #output : <class 'tensorflow.python.ops.variables.RefVariable'> print(var_list[0]) #output : <tf.Variable ...

w55100的博客 5185

tensorflow怎么查看.ckpt内保存的权重名和权重

import os from tensorflow.python import pywrap_tensorflow checkpoint_path = os.path.join("C://Users//gmt//Desktop//rdb//", ".\\model.ckpt") # Read data from checkpoint file reader = pywrap_tensorflo...

MarTin Guo的博客 3832

Tensorflow Dataset使用

文章目录前言一、Dataset使用二、TextLineDataset,string_split使用,以及中间变量打印 前言 tf的版本:2.7.0 记录tensorflow的使用方法 一、Dataset使用 # from_tensor_slices:表示从张量中获取数据。 # make_one_shot_iterator():表示只将数据读取一次,然后就抛弃这个数据了。 input_data = [1,2,3,5,8] dataset = tf.data.Dataset.from_tensor_slic

baidu_34106507的博客 536

tensorflow Summary方法详解

1、tf.summary.scalar 用来显示标量信息,其格式为: tf.summary.scalar(name, tensor, collections=None) 例如:tf.summary.scalar('mean', mean) 一般在画loss,accuary时会用到这个函数。 2、tf.summary.histogram 用来显示直方图信息,其格式为: tf...

hongxue8888的博客 2万+

Tensorflow中占位符与Variable对象

一、占位符 对于Tensorflow中占位符,可以把它看作一个未知数,设矩阵a为矩阵b与矩阵c的乘积, b=[123456789] b= \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 &a

a1786742005的博客 1086

Tensorflow在不同训练场景下读取和使用不同格式pretrained model的方法

不同应用场景分析与示例 Tensorflow读取预训练模型是模型训练中常见的操作,通常的应用的场景包括: 1)训练中断后需要重新开始,将保存之前的checkpoint(包括.data .meta .index checkpoint这四个文件),然后重新加载模型,从上次断点处继续训练或预测。实现方法如下: 如果代码中已经构建好了网络结构图 with tf.Session() as s

Leo_Xu06的博客 8336

TensorFlow保存读取数据

保存数据import tensorflow as tf# 声明两个变量 v1 = tf.Variable(tf.random_normal([1, 2]), name="v1") #1*2的矩阵 v2 = tf.Variable(tf.random_normal([2, 3]), name="v2") #2*3的矩阵 init_op = tf.global_variables_initializ

Xu_Haocan的博客 583

tf2caffe.py Tensorflow转caffe代码详析

tf2caffe.py详析 一、函数逐一析 1、tf.ConfigProto tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算 config=tf.ConfigProto(allow_soft_placement=True) #允许tf自动选择一个存在并且可用的设备来运行操作 2、pywrap_tensorflow pywrap_tens...

工地搬砖第一年的博客 533

tensorflow2.0】tf.keras概述

u绘画

糊涂懿的博客 288

TensorFlow 2.0深度学习算法实战 第四章 Tensorflow基础

第四章 Tensorflow基础4.1 数据类型4.1.1 数类型4.1.2 字符串类型4.1.3 布尔类型4.2 数精度4.2.1 读取精度4.2.2 类型转换4.3 待优化张量4.4 创建张量4.4.1 从 Numpy, List 对象创建4.4.2 创建全 0,全 1 张量4.4.3 创建自定义数张量4.4.4 创建已知分布的张量4.4.5 创建序列4.5 张量的典型应用4.5.1 标量4.5.2 向量4.5.3 矩阵4.5.4 三维张量4.5.5 4维张量4.6 索引与切片4.6.1 索引4

猫敷雪 1631

PyCharm中TensorFlow环境配置:Conda与虚拟环境方案详解

Python虚拟环境是管理项目依赖、避免版本冲突的核心技术,通过创建隔离的Python运行空间,确保不同项目使用独立的包版本。其原理基于路径重定向和环境变量隔离,使得每个环境拥有专属的site-packages目录。这一机制对于深度学习开发尤为重要,因为像TensorFlow这类框架对CUDA、cuDNN等系统库和Python版本有严格依赖。在工程实践中,环境配置的稳定性直接决定了模型训练与部署的效率。针对PyCharm这一主流IDE,常见的环境管理方案包括Conda和纯Python虚拟环境(venv)。C

weixin_30706691的博客 391

Tensorflow之单变量线性回归模型

包含linear_regression.py、logs、tb_logs 实现的功能  创建一个线性回归模型,利用梯度下降法不断迭代求最小损失函数,来获得最佳参数W和b 添加tensorboard更直观的展现出损失函数的下降趋势 详细过程看代码,代码是最好的解释 其实后续的神经网络,卷积网络,大体结构与线性回归模型的思想差不多 已知训练、测试、验证集合,可能在数据上要做些处理比如...

r_m_AA的博客 461

Tensorflow实战之Python基础

Python基础一、初始Python1. 解释和编译2. Python语言特点3. Python基础语法二、基础知识1. 数据类型2. 常量、变量3. 运算符4. 条件语句三、数据结构1. 列表 list[ ]2. 元组 tuple( )3. 字典 dict{ }4. 集合 set( )四、函数1. Python内置函数2. 函数变量3. 参数4. 模块、包、库五、面向对象(封装、继承、多态)1. 初识面向对象类的相关知识方法的相关知识成员变量2. 面向对象的三大特性——继承、封装、多态封装继承多态六、异常

qinzhongyuan的博客 633
上一篇: 拉格朗日乘子法与KKT条件
下一篇: 主成分分析教程
cassiePython
博客等级 码龄12年 303粉丝 135原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值