以下是详细讲解“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技术站