简化Pythorch自动加载计算的库

autograd-lib的Python项目详细描述


自动签名

作者:Yaroslav Bulatov,Kazuki Osawa

库来简化Pythorch中的梯度计算。在

示例1:每个示例的梯度规范

使用它计算线性层的梯度范数的示例,使用https://arxiv.org/abs/1510.01799的技巧

有关可运行的示例,请参见example_norms.py。重要部分:

!pip install autograd-lib

from autograd_lib import autograd_lib

loss_fn = ...
data = ...
model = ...
autograd_lib.register(model)


activations = {}

def save_activations(layer, A, _):
    activations[layer] = A

with autograd_lib.module_hook(save_activations):
    output = model(data)
    loss = loss_fn(output)

norms = [torch.zeros(n)]

def per_example_norms(layer, _, B):
    A = activations[layer]
    norms[0]+=(A*A).sum(dim=1)*(B*B).sum(dim=1)

with autograd_lib.module_hook(per_example_norms):
    loss.backward()

print('per-example gradient norms squared:', norms[0])

例2:黑森量

在一次迭代中计算ReLU网络所有线性层的精确Hessian、Hessian对角线和KFAC近似。在

请参见example_hessian.py以获取自包含的示例。重要部分:

^{pr2}$

变化:

  • autograd_lib.backward_hessian适用于黑森
  • autograd_lib.backward_jacobian表示雅可比平方
  • ^经验Fisher信息矩阵的{}

见自动签名_测试.py根据Pythorch autograd进行正确性检查。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在验证检查中改进构建器模式?   java如何定义一个依赖项来获取快照?   java Javafx webview在运行时不显示dashplotly应用程序   java Android kotlin单元测试用例。。?   java Android:SurfaceView,为什么要使用不同的线程   Android/Java“org.apache.http.ProtocolException”,http头应答有问题   反射如何确定类成员是否是静态的以及Java中的字段   java设置EditText以接受双值的问题   类加载器如何使用类加载器将jar从我的网站加载到java应用程序的脚本中   java GWT HTMLTable colaspan功能   java无法删除/重命名文件   java Navigableset vs Navigablemap   php中java加密方法的转换   java为什么加载我的共享对象文件会在Netbeans 8.2中出现“未满足链接”错误?   java JAXRS CXF异常包装   java程序在If语句之后执行Else语句   java将对象转换为JAXBElement<Object>