TensorFlow 进阶:梯度计算、模型构建与 XOR 问题求解
1. 非可训练张量的梯度计算
在 TensorFlow 中, tf.GradientTape 会自动支持可训练变量的梯度计算。但对于非可训练变量和其他张量对象,我们需要使用 tape.watch() 方法来监控它们。
1.1 示例代码
import tensorflow as tf
# 假设 x、w、b、y 已经定义
with tf.GradientTape() as tape:
tape.watch(x)
z = tf.add(tf.multiply(w, x), b)
loss = tf.reduce_sum(tf.square(y - z))
dloss_dx = tape.gradient(loss, x)
tf.print('dL/dx:', dloss_dx)
1.2 多梯度计算的资源保留
默认情况下, tf.GradientTape 只会为单次梯度计算保留资源。调用 tape.gradient() 一次后,资源会被释放,磁带会被清空。如果要计算多个梯度,需要将磁带设置为持久的。
1.3 示例代码
with tf.GradientTape(persistent=True) as tape:
z = tf.add(tf.m
超级会员免费看
订阅专栏 解锁全文
2785

被折叠的 条评论
为什么被折叠?



