python - 在 Tensorflow 中计算雅可比矩阵

标签 python tensorflow gradient

我想通过 Tensorflow 计算雅可比矩阵。

我拥有的:

def compute_grads(fn, vars, data_num):
    grads = []
    for n in range(0, data_num):
        for v in vars:
            grads.append(tf.gradients(tf.slice(fn, [n, 0], [1, 1]), v)[0])
    return tf.reshape(tf.stack(grads), shape=[data_num, -1])
fn是一个损失函数,vars都是可训练的变量,而 data_num是一组数据。

但是如果我们增加数据的数量,运行函数compute_grads会花费大量的时间。 .
有任何想法吗?

最佳答案

假设 XY是 Tensorflow 张量和 Y取决于 X :

from tensorflow.python.ops.parallel_for.gradients import jacobian
J=jacobian(Y,X)

结果具有形状 Y.shape + X.shape并提供Y的每个元素的偏导数关于 X 的每个元素.

关于python - 在 Tensorflow 中计算雅可比矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50244270/

相关文章:

python - 使用 Flask-Cache 缓存 lxml.html 对象

python - 如何计算tensorflow张量中的元素?

html - safari 和 firefox vs chrome - css 渐变

python - 如何解决CPU随机数生成器似乎失败,禁用硬件随机数生成错误

python - tf.transform : add preprocessing to Keras model?

python - 如何在 Python 中向左或向右移动列表中的所有元素?

python - 将 vgg19 层的输出显示为图像

android - 运行 tensorflow 模型的 java.nio.BufferOverflowException

Android:使用线性渐变作为背景看起来带状

ios - 多个 UIBezierPath 的渐变