如何使用Tensorflows GradientTape()计算偏差

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Tensorflows GradientTape()计算偏差相关的知识,希望对你有一定的参考价值。

我正在寻求在自定义NN体系结构上实现GradientTape(),但是我看不到任何关于如何使用它来计算偏差的解释。回答了类似的问题here,但没有完全回答。

作为一个简单的例子,我对我的NN有这样的训练步骤:

self.W = ## Initialized earlier on
self.b = ## Initialized earlier on

@tf.function
    def train(self):
        with tf.GradientTape() as tape:
            pred = self.feedforward()
            loss = self.loss_evaluation()
        grad = tape.gradient(loss, self.W)
        grad = tape.gradient(loss, self.b) ## How do I do this?

        optimizer.apply_gradients(zip(grad, self.W))
        optimizer.apply_gradients(zip(grad, self.b)) ## How do I do this?

简单地说,我无法评估与偏差有关的梯度,因为在任何文档或教程中都没有发现偏差术语。那么,如何在我的代码中将偏见项实现为可训练变量呢?我不想使用keras来实现此功能,因此不建议使用trainable_variables,因为我想从头开始。

答案

@@ thushv89,杰米(Jamie)显示的代码不起作用,因为您无法在同一盘磁带上两次调用gradient()

Jamie,为什么不能简单地执行以下操作?

with tf.GradientTape() as tape:
    pred = self.feedforward()
    loss = self.loss_evaluation()
grads = tape.gradient(loss, [self.W, self.b])
optimizer.apply_gradients(zip(grads, [self.W, self.b]))

以上是关于如何使用Tensorflows GradientTape()计算偏差的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflows安装(cpu版最简安装方法)

Tensorflows安装(cpu版最简安装方法)

设置透明度

TensorFlow vs PyTorch 4: 自动微分

有人让 Tensorflow 分布式培训笔记本工作吗?

从入门到实战,TensorFlow 带你走进深度学习的世界