Skip to main content

anatome

Ἀνατομή is a PyTorch library to analyze internal representation of neural networks

This project is under active development and the codebase is subject to change.

Note the name of the pypi package is ultimate-anatome but the python import is done with the original name import anatome. Test via:

python -c "import anatome.my_utils as my_utils;my_utils.hello()"
python -c "import anatome.my_utils as my_utils;my_utils.my_anatome_test()"

Credit to original library: https://github.com/moskomule/anatome and consider citing both of us! Citation at the end of readme.

Installation

If you are going to use a gpu the do this first before continuing (or check the offical website: https://pytorch.org/get-started/locally/):

pip3 install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html

Otherwise, just doing the follwoing should work.

pip install ultimate-anatome

Manual installation [for Development]

To use code first get the code from this repo (e.g. fork it on github):

git clone git@github.com:brando90/ultimate-anatome.git

Then install it in development mode in your python env with python >=3.9. E.g. create your env with conda:

conda create -n ultimate_anatome_env python=3.9
conda activate ultimate_anatome_env

Then install code in edibable mode and all it's depedencies with pip in the currently activated conda environment:

pip install -e ~/ultimate-anatome

Available Tools

Representation Similarity

To measure the similarity of learned representation, anatome.SimilarityHook is a useful tool. Currently, the following methods are implemented.

import torch
from torchvision.models import resnet18
from anatome import DistanceHook
from anatome.my_utils import remove_hook

model = resnet18()
hook1 = DistanceHook(model, "layer3.0.conv1")
hook2 = DistanceHook(model, "layer3.0.conv2")
model.eval()
with torch.no_grad():
    model(torch.randn(128, 3, 224, 224))
# downsampling to (size, size) may be helpful
hook1.distance(hook2, size=8)
hook1.clear()
hook2.clear()
remove_hook(model, hook1)
remove_hook(model, hook2)

or to test do:

from anatome.my_utils import my_anatome_test
my_anatome_test()

Loss Landscape Visualization

from anatome import landscape2d

x, y, z = landscape2d(resnet18(),
                      data,
                      F.cross_entropy,
                      x_range=(-1, 1),
                      y_range=(-1, 1),
                      step_size=0.1)
imshow(z)

Fourier Analysis

  • Yin et al. NeurIPS 2019 etc.,
from anatome import fourier_map

map = fourier_map(resnet18(),
                  data,
                  F.cross_entropy,
                  norm=4)
imshow(map)

Citation

If you use this implementation in your research, please conser citing my version of anatome:

@software{miranda2021ultimate_anatome,
    author={Brando Miranda},
    title={Ultimate Anatome, the ultimate PyTorch library to analyze internal representation of neural networks},
    url={https://github.com/brando90/ultimate-anatome},
    year={2021}
}

and the original version:

@software{hataya2020anatome,
    author={Ryuichiro Hataya},
    title={anatome, a PyTorch library to analyze internal representation of neural networks},
    url={https://github.com/moskomule/anatome},
    year={2020}
}

Related libraries:

Metadata

Release files for ultimate-anatome 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ultimate-anatome 0.1.1
File Size Uploaded Provenance
ultimate-anatome-0.1.1.tar.gz 30.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ultimate-anatome 0.1.1
File Interpreter ABI Platform
ultimate_anatome-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 61.1 kB

Release files / ultimate-anatome-0.1.1.tar.gz

Download URL ultimate-anatome-0.1.1.tar.gz
Size 30.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f3a0f1a48e3037f2aaedf7194569a94783f0818579e3125e9e7a94e4e14e80f0
BLAKE2b-256 checksum
How to use checksums
d78341e194e19878eea5cbd9647c5832fb94499307895365de0b2fba5e839f73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

Release files / ultimate_anatome-0.1.1-py3-none-any.whl

Download URL ultimate_anatome-0.1.1-py3-none-any.whl
Size 30.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
43375f201a375ced341993ad5636fa307301831281ad3fcb770edb6646fdb021
BLAKE2b-256 checksum
How to use checksums
d9a377243df9ce719e719b24038428ca8289e6b498e9106264f6acda46ba3f90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

Security for ultimate-anatome 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page