Skip to main content

A neat instrument designed for visualizing neural networks.

Project description

tcurve-icon.png

aNETomy

A neat instrument designed for visualizing neural networks.
Experience seamless visualization without the burden of conversion.

Version GitHub Repo Stars Python MIT License


🚀 Spotlight

🎯 Effortless Visualization

Given that PyTorch is an imperative framework, to visualize on the fly could be very useful for developers. aNETomy sidesteps the prep and conversion while keeping the accessibility and compatibility.

graph.png


📊 Comparison

The following comparison are concluded according to hands-on practical experience. It could be wrong somewhere.

Feature aNETomy Netron TensorBoard torchviz torchinfo torchview torchlens torchexplorer
Less Preparation
Handles Dynamic Models ⚠️ ⚠️
Interactive Graphs
Tensor Shapes
Structure Completeness ❌ based on autograd ⚠️ some functions are missing ⚠️ ❌ based on autograd
Compatibility ⚠️ unfriendly to some ops ⚠️ limited ❌ No

⚡ Quick Start

You can simply take it as a wrapper or help you plot curves.

from anetomy import Inspector
import torch
from torch import nn
import torch.nn.functional as F

# define the toy model
class Dense(nn.Module):
    def __init__(self):
        super().__init__()
        self.lin = nn.Linear(28*28*2, 10)

    def forward(self, x):
        x = F.relu(x, inplace=True)
        x = x.reshape(-1,)
        y = self.lin(x)
        return y
          
class NeuralNetwork(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 = nn.Conv2d(3, 8, 3, padding=1)
        self.mpool1 = nn.MaxPool2d(3, stride=2, ceil_mode=True)
        self.dense = Dense()

    def forward(self, x, scale=1):
        x *= scale
        y = self.conv1(x)
        y = self.mpool1(y)
        y = self.dense(y)
        return y

# input dummy data to visualize
net = NeuralNetwork()
dummy_x = torch.randn(1, 3, 28, 28)
dummy_s = 2
ant = Inspector(graph_path='./toynn.png')
ant.dissect(net, dummy_x, scale=dummy_s)
ant.draw(3)

📦 Installation

At first, install graphviz beforehand.

🍎 macOS

Use Homebrew for a quick installation:

brew install graphviz

🐧 Linux

For Debian-based systems (Ubuntu, Debian):

sudo apt update && sudo apt install graphviz

For Arch-based systems (Arch, Manjaro):

sudo pacman -S graphviz

For RHEL-based systems (Fedora, CentOS):

sudo dnf install graphviz

🐍 Python

Then install the bindings.

pip install graphviz

Finally, install anetomy via pip.

pip install anetomy

❤️ Support

If you find aNETomy helpful, please give it a ⭐ on GitHub! ▶️ https://github.com/SeriaQ/aNETomy

Project details


Download files

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

Source Distribution

anetomy-0.1.0.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

anetomy-0.1.0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file anetomy-0.1.0.tar.gz.

File metadata

  • Download URL: anetomy-0.1.0.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for anetomy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cc775490721c5fe90c4ca4aa41dae159c2aead6b51dbe9bd433f7c2fc1092d0d
MD5 dd50e1219e4caff47434d2144c4133fe
BLAKE2b-256 810d98269457992a250b6856175d644a670c0dc644c3665875841b2f3df861b6

See more details on using hashes here.

File details

Details for the file anetomy-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: anetomy-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for anetomy-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 59115f74dd3d53d6e73076706560fcc7965b94066993b294b579f4cf2dfe650c
MD5 fc33a22770792937303c6d9070e5bfbc
BLAKE2b-256 29ee3e260ad2a42f83e8f493ce5536e806473808474fb6e3c66b2ef10fb20a38

See more details on using hashes here.

Supported by

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