Skip to main content

calculate example-wise gradient

Project description

this repository is still under construction (2021/07/21)

ExGrads

This repository provides a hook script: calculating Example-wise Gradients efficiently.

Note

This script use the work as an important reference.
I think it is the great first step to handle per-example gradients efficiently.
I'd like to express my respect for the step.

Features of This Script

How to Use

import torch
import exgrads as ExGrads

batch,dim,label = 5,3,2
x = torch.randn(batch,dim)                                  #: inputs
y = torch.randint(low=0,high=label-1,size=(batch,))         #: outputs
model   = torch.nn.Sequential(torch.nn.Linear(dim, label))  #: PyTorch model
loss_fn = torch.nn.functional.cross_entropy                 #: loss function

ExGrads.register(model)
model.zero_grad()
loss_fn(model(x), y).backward()

# param.grad:     gradient averaged over the batch
# param.grad1[i]: gradient of i-th example
for param in model.parameters():
	assert(torch.allclose(param.grad1.sum(dim=0), param.grad))
ExGrads.deregister(model)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

ExGrads-0.1.3-py3.8.egg (8.4 kB view details)

Uploaded Source

File details

Details for the file ExGrads-0.1.3-py3.8.egg.

File metadata

  • Download URL: ExGrads-0.1.3-py3.8.egg
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

File hashes

Hashes for ExGrads-0.1.3-py3.8.egg
Algorithm Hash digest
SHA256 cfa997de7d9af53cdf7705df8efc210c483e78752b3d9cee03a22fd1e4504546
MD5 51a2de94e80276a8daa67035ca3ced49
BLAKE2b-256 2083f788297f8eaaaab8abbeec39925fefb6ba0b0ce60988140ef3d911eae39e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page