tensorflow 获取变量&打印权值的实例讲解

yizhihongxing

以下是详细讲解“tensorflow获取变量&打印权值的实例讲解”的完整攻略,包含两条示例说明。

示例1:获取变量

在 TensorFlow 中,可以使用 tf.get_variable(name, shape, dtype) 函数获取一个变量。其中,name 表示变量名,shape 表示变量形状(可以是一个整数,一个长度为 n 的 list,或者一个 Tensor 对象),dtype 表示变量的类型。以下是示例代码:

import tensorflow as tf

with tf.variable_scope("example_scope"):
    x = tf.get_variable("x", shape=[1], initializer=tf.constant_initializer(1.0))
    y = tf.get_variable("y", shape=[1], initializer=tf.constant_initializer(2.0))

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(x))
    print(sess.run(y))

在这个例子中,我们首先创建了一个 variable_scope,用来管理一些相关的变量。然后,我们使用tf.get_variable()函数分别创建了两个变量 x 和 y,它们的初始值分别为 1.0 和 2.0。最后,我们创建一个会话,并使用tf.global_variables_initializer()函数初始化所有变量。使用sess.run()函数和变量名作为参数,我们可以打印变量 x 和 y 的值,输出结果如下:

[1.]
[2.]

示例2:打印权值

在 TensorFlow 中,我们可以使用tf.trainable_variables()函数来获取所有可训练的变量,即所有的 weights 和 biases。以下是示例代码:

import tensorflow as tf

x = tf.placeholder(dtype=tf.float32, shape=[None, 1])
y = tf.placeholder(dtype=tf.float32, shape=[None, 1])

W = tf.Variable(tf.ones(shape=[1, 1]), name="W")
b = tf.Variable(tf.zeros(shape=[1]), name="b")

y_pred = tf.matmul(x, W) + b
loss = tf.reduce_mean(tf.square(y_pred - y))

train_op = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(loss)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())

    for i in range(100):
        _, loss_val, W_val, b_val = sess.run([train_op, loss, W, b], feed_dict={x: [[1], [2], [3], [4]], y: [[2], [4], [6], [8]]})
        print("loss: {}, W: {}, b: {}".format(loss_val, W_val, b_val))

    print("trainable variables: ")
    for var in tf.trainable_variables():
        print(var.name, var.shape)

在这个例子中,我们使用tf.placeholder(dtype, shape)函数来定义输入和输出的 placeholder。然后,我们定义了一个权重变量 W 和一个偏置变量 b,它们的初始值分别为 1 和 0。接着,我们计算预测值 y_pred,并定义损失函数 loss,使用梯度下降法训练模型并打印每次迭代的 loss,W 和 b 值。最后,我们使用tf.trainable_variables()函数打印所有可训练的变量,输出结果如下:

trainable variables: 
W:0 (1, 1)
b:0 (1,)

其中,“:0”表示该变量所在的设备和变量所在设备上的编号。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:tensorflow 获取变量&打印权值的实例讲解 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • [傅里叶变换及其应用学习笔记] 九. 继续卷积的讨论

    这份是本人的学习笔记,课程为网易公开课上的斯坦福大学公开课:傅里叶变换及其应用。   浑浊度(Turbidity)研究是关于测量水的清澈度的研究。大致方法是把光传感器放置到深水区域,然后测量光线的昏暗程度,测量出来的值将随时间变化。 (由于没有真实数据,下面用mathematica比较粗糙地模拟水域的浑浊度数据)         能看到信号主要集中在低频,我…

    2023年4月7日
    00
  • Latex向上\向下取整语法 及卷积特征图高宽计算公式编辑

    在编辑卷积网络输出特征高宽公式时,需用到向下取整,Mark一下。 向下取整 \(\lfloor x \rfloor\)$\lfloor x \rfloor$ 向上取整 \(\lceil x \rceil\)$\lceil x \rceil$ 特征图高宽公式 \(已知输入的高宽为(h_x,w_x)、卷积核的高宽为(h_k,w_k)、高度和宽度方向的步幅为(s_…

    卷积神经网络 2023年4月8日
    00
  • [DeeplearningAI笔记]卷积神经网络1.9-1.11池化层/卷积神经网络示例/优点

    吴恩达老师课程原地址 1.9池化层 优点 池化层可以缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性。 池化层操作 池化操作与卷积操作类似,但是池化操作是保留池化窗口在扫过原始图像中时的最大值。注意:每个信道都在其单独的信道中执行池化操作。 其维度公式也满足公式: \[\lfloor\frac{(n+2p-f)}{s}+1\rfloor*\lfloo…

    2023年4月8日
    00
  • 深度学习可形变卷积

    深度学习可形变卷积 Deformable Convolutional Networks 参考文献链接:https://arxiv.org/pdf/1703.06211.pdf 参考代码链接: https://github.com/ msracver/Deformable-ConvNets 可形变卷积 卷积神经网络(CNNs)由于其构建模块中固定的几何结构,其…

    2023年4月8日
    00
  • 周末轻松话卷积(上)

    最近总是和卷积打交道,工作需要,每天都要碰到它好几次,不胜烦恼,因为在大学时候学信号与系统的时候就没学会,我于是心想一定要把卷积完全搞明白。正好同办公室的同学也问我什么是卷积,师姐昨天也告诉我说:“我也早就想把这个问题搞明白了!”经过一段时间的思考之后,有一些很有趣的体会和大家分享。 听说卷积这种运算式物理学家发明的,在实际中用得不亦乐乎,而数学家却一直没有…

    2023年4月8日
    00
  • 对ONNX模型进行BN和卷积层的融合

    对Resnet50.onnx模型进行BN和卷积层的融合   一、准备工作 安装ONNX You can then install ONNX from PyPi (Note: Set environment variable ONNX_ML=1 for onnx-ml): pip install onnx You can also build and inst…

    卷积神经网络 2023年4月8日
    00
  • 卷积核尺寸如何选取呢?

    滤波器的大小选择 大部分卷积神经网络都会采用逐层递增(1⇒ 3 ⇒ 5 ⇒ 7)的方式。 每经过一次池化层,卷积层过滤器的深度都会乘以 2; 卷积神经网络中卷积核越小越好吗? 多个小的卷积核叠加使用要远比一个大的卷积核单独使用效果要好的多,在连通性不变的情况下,大大降低了参数个数和计算复杂度。 当然,卷积核也不是越小越好,对于特别稀疏的数据比如下图所示,当使…

    2023年4月8日
    00
  • 深度卷积网络CNN与图像语义分割

    转载请注明出处: http://xiahouzuoxin.github.io/notes/html/深度卷积网络CNN与图像语义分割.html 级别1:DL快速上手 级别2:从Caffe着手实践 级别3:读paper,网络Train起来 级别4:Demo跑起来 读一些源码玩玩 熟悉Caffe接口,写Demo这是硬功夫 分析各层Layer输出特征 级别5:何不…

    2023年4月5日
    00
合作推广
合作推广
分享本页
返回顶部