人工智能AI编程
发布时间
阅读量:
阅读量
在训练过程中,在反向传播过程中,该参数必须是tf.Variable类型,并将自动计算并存储梯度信息。
coding: utf-8
@时间 : 2022/3/19 2:56 下午
@作者 : 那美那美 V: qwentest123
import tensorflow as tf
w = tf.Variable([[1.], [2.]])
x = tf.constant([[3., 4.]])
r1 = tf.matmul(w, x) # 矩阵内积
w = w.assign([[5.], [6.]]) # 重新分配值
r2 = tf.matmul(w, x)
print('参与计算1:', r1,'\n参与计算2:', r2)
tf.Variable类会在反向传播的时候进行梯度计算并保存梯度信息
with tf.GradientTape(persistent=True) as tape:
trainable = tf.Variable(1.)
non_trainable = tf.Variable(2., trainable=False)
x1 = trainable * 2.
x2 = non_trainable * 3.
print(tape.gradient(x1, trainable))
运行结果:
用于计算第一项的值为:[[3.0, 4.0], [6.0, 8.0]];形状为(2, 2),数据类型为float32;用于计算第二项的值为:[[15.0, 20.0], [18.0, 24.0]];形状为(2, 2),数据类型为float32;最后一项的值为:[[...]];形状为标量,默认数据类型为float32
全部评论 (0)
还没有任何评论哟~
