问题标签 [gradienttape]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
514 浏览

python - Python,Tensorflow ValueError:没有为任何变量提供梯度

我有一堂课叫RL_Brain

当我运行该learn函数时,我收到以下错误:

0 投票
0 回答
206 浏览

histogram - 在 TensorFlow 2.3.0 中使用 tf.GradientTape() 时如何在 tensorboard 中可视化权重和偏差

以 DCGAN 上的 tensorflows 教程为例: https ://www.tensorflow.org/tutorials/generation/dcgan?hl=en

为了记录损失,使用了以下示例: https ://www.tensorflow.org/tensorboard/get_started?hl=en

使用上面的作为参考,我添加了几行来查看张量板中的损失,但是不能对生成器/鉴别器的权重和偏差做同样的事情。

用于查看生成器/鉴别器损失的代码:


准备作家/日志目录:


然后对于每个时期,我分别将 gen_loss 和 disc_loss 传递到 g_loss 和 d_loss 中,然后执行以下操作:

以上允许您在 tensorboard 的 scalars 选项卡下查看 g_loss 和 d_loss。

那么我怎样才能对权重和偏差做同样的事情呢?
我可以看到它使用 tf.GradientTape() 来执行反向传播。使用它时,我认为您不需要将 model.fit() 与回调一起使用,而是将 generator.trainable_variables 与 tf.summary.histogram() 一起使用,但我不确定如何将它们放在一起。

如果您想同时查看标量和直方图,您还需要在某个时候“合并”标量和直方图吗?

0 投票
1 回答
330 浏览

python - tf.tape.gradient() 为我的数值函数模型返回 None

我正在尝试使用tf.GradientTape(). 但是问题是tape.gradientreturns None,所以会TypeError : unsupported operand type(s) for *: 'float' and 'NoneType'弹出错误输出()。正如您在我的代码中看到的那样,dloss_dparams = tape.gradient(Cost, [XX,YY])不返回任何内容。我不知道有什么问题。有人为什么会这样吗?

输出是

下面是变量(XX,YY)和成本的关系图,以防万一。 在此处输入图像描述

0 投票
1 回答
548 浏览

python - 是否有可能获得中间梯度?(张量流)

使用渐变胶带时,您可以使用以下方法计算渐变:

但是,在 cifar10 输入的情况下,这将返回输入图像的梯度。有没有办法访问中间步骤的梯度,以便他们已经通过“一些”训练?

0 投票
1 回答
257 浏览

python - 使用 tf.cond() 检查自定义层的调用方法中的条件

我在 tensorflow 2.x 中实现了一个自定义层。我的要求是,程序应该在返回输出之前检查一个条件。

我的问题是:我应该继续使用当前代码(假设tape.gradient(Loss, self.trainable_weights)可以正常工作)还是应该使用tf.cond(). 另外,如果可能,请说明在哪里使用tf.cond()和在哪里不使用。我没有找到关于这个主题的太多内容。

0 投票
1 回答
230 浏览

tensorflow - 关于从 TensorFlow 中的 GradientTape.gradient 获取 None 的问题

我尝试了以下代码:

我得到以下结果:

谁能解释为什么返回的梯度是None即使源变量kernel包含在监视变量列表中?

0 投票
1 回答
147 浏览

python - TensorFlow 中切片输入的梯度为无

以下是我的代码

我有一个输入,我必须对其进行切片然后计算输出。在此基础上,我需要计算梯度。但是,上述代码的输出为 None。

如何获得渐变?有什么方法可以对输入进行切片以获得渐变。

PS我必须只使用EagerExecution。没有图表模式。

0 投票
3 回答
341 浏览

python - 对 LSTM 模型的 Jacobian 使用梯度磁带 - Python

我正在使用 LSTM 构建一个模型预测的序列。我的数据有 4 个输入变量和 1 个需要预测的输出变量。数据是时间序列数据。数据的总长度为 38265(总时间步数)。总数据在大小为 38265 *5 的数据框中

我想使用 4 个输入变量的前 20 个时间步长数据来预测我的输出变量。我为此目的使用下面的代码。

我想使用 tf.Gradient Tape 计算 LSTM 模型函数的输出变量的雅可比 .. 谁能帮我解决这个问题?

0 投票
1 回答
23 浏览

python - 在雅可比矩阵计算期间避免警告

我有一个训练有素的 LSTM 模型。我想计算输出 wrt 输入的雅可比矩阵。我写了以下代码:

我得到了想要的输出,但我收到了一些我无法理解的警告。如果它是一次,那是可以的。但我需要在运行超过 1000 次的 for 循环中计算雅可比矩阵。因此,这些警告出现在 for 循环的每次迭代中。

这是在 for 循环实现过程中不断出现的两个警告。任何人都可以帮助我纠正我的代码或给我一个避免这些警告的技巧吗?

谢谢 :)

0 投票
1 回答
170 浏览

python - tensorflow 2.x / keras 中的梯度累积

我正在尝试在 TF2.x 上实现梯度累积。我发现的所有实现都适用于 TF1.x 或旧的 keras 接口。我认为那里没有实现(尽管我很高兴被证明是错误的)。

这是我正在使用的:

我已经能够验证它确实节省了 gpu 内存。但是,最终的结果与正常的不一样Model.fit

验证

特写

如您所见,前三个Model.fits 很好地聚类并给出相同的结果。但是当while循环开始发挥作用时,训练就完全不同了。

有人知道为什么会这样吗?