LocoProp Torch
Implementation of the paper "LocoProp: Enhancing BackProp via Local Loss Optimization" in PyTorch.
Paper: https://proceedings.mlr.press/v151/amid22a/amid22a.pdf
Official code: https://github.com/google-research/google-research/blob/master/locoprop/locoprop_training.ipynb
Installation
pip install locoprop
Usage
from locoprop import LocoLayer LocopropTrainer
# model needs to be instance of nn.Sequential
# each trainable layer needs to be instance of LocoLayer
# Example: deep auto-encoder
model = nn.Sequential(
LocoLayer(nn.Linear(28*28, 1000), nn.Tanh()),
LocoLayer(nn.Linear(1000, 500), nn.Tanh()),
LocoLayer(nn.Linear(500, 250), nn.Tanh()),
LocoLayer(nn.Linear(250, 30), nn.Tanh()),
LocoLayer(nn.Linear(30, 250), nn.Tanh()),
LocoLayer(nn.Linear(250, 500), nn.Tanh()),
LocoLayer(nn.Linear(500, 1000), nn.Tanh()),
LocoLayer(nn.Linear(1000, 28*28), nn.Sigmoid(), implicit=True), # implicit means the activation only is applied during local optimization
)
def loss_fn(logits, labels):
...
trainer = LocopropTrainer(model, loss_fn)
dl = get_dataloader()
for x, y in dl:
trainer.step(x, y)
Metadata
Release files for locoprop 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| locoprop-0.1.0.tar.gz | 4.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| locoprop-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.0 kB
Release files / locoprop-0.1.0.tar.gz
| Download URL | locoprop-0.1.0.tar.gz |
|---|---|
| Size | 4.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5b231462d8ade9c0131bdee1416f2c8676b16085bd9ad4c219306bcad1435fa
|
|
BLAKE2b-256 checksum How to use checksums |
90ade6fac6a5f65028db3fd95d265b27e30834a89736a69cf99895240cb9aedc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.8.5
|
Release files / locoprop-0.1.0-py3-none-any.whl
| Download URL | locoprop-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2b104e3ca4fa22384aaba894d925fb7adf4bf1db47ea101c483fb1d87f26f138
|
|
BLAKE2b-256 checksum How to use checksums |
e27b607b5559f152edc32c40d95cfc74255e63d018d83f3e0d8c9b76ae81d47a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.8.5
|