torch-scan

Seamless analysis of your PyTorch models (RAM usage, FLOPs, MACs, receptive field, etc.)

APACHE-2.0 License

Downloads
581
Stars
207
Committers
2
torch-scan - v0.1.2: Improved project quality and some layers' support fixed Latest Release

Published by frgfm about 2 years ago

This release fixes the support of some layers and improves the project quality.

Note: torchscan 0.1.2 requires PyTorch 1.5 or higher.

Highlights

🎨 Documentation theme

It was time to update the documentation, thus the theme was changed from Read the Docs to Furo (#61)

image

This comes with nice features like dark mode and edit button!

🧹 Code quality

Getting a clean, maintainable code base is one of the key catalyst aspects for an OSS project. As such, a few improvements have been made:

  • codebase quality : adding annotation typing (#30), black formatting (#58)
  • moved legacy requirements.txt to pyproject.toml (#58, #59)
  • added a Makefile for easier development (#61)

Breaking changes

⚠️ Branch renaming

The master branch was renamed into main (#60), so if you were installing from source a specific branch name, make sure to update this reference!

What's Changed

Breaking Changes 🛠

New Features 🚀

Bug Fixes 🐛

Improvements

New Contributors

Full Changelog: https://github.com/frgfm/torch-scan/compare/v0.1.1...v0.1.2

torch-scan - Extended module support and experimental receptive field computation

Published by frgfm about 4 years ago

This release adds support of more modules by the crawler and enables receptive field computation for highway nets.

Note: torchscan 0.1.1 requires PyTorch 1.1 or newer.

Highlights

Modules

In-hook information extraction for supported torch.nn.Module
New

  • Add experimental support of receptive field estimation for the following torch.nn.Module: Identity, Linear, Identity, ReLU, ELU, LeakyReLU, ReLU6, Tanh, Sigmoid, _ConvTransposeNd, _ConvNd, _BatchNorm, _MaxPoolNd, _AvgPoolNd, _AdaptiveMaxPoolNd, _AdaptiveAvgPoolNd, Dropout (#21).

Fixes

  • Fixed transposed convolutions identification (#14)
  • Fixed flops, macs & dmas estimation for pooling operations (#19, #20)

## Crawler
Module hooking agent
New

  • Added an experimental feature receptive_field in the summary function (#21)

Test

Verifications of the package well-being before release
New

  • Updated test for torchscan.modules (#21)

Documentation

Online resources for potential users
Improvements

  • Add documentation website referencing (#13)
  • Updated documentation (#22)

Fixes

  • Fixed documentation deployment (#16)

Others

Other tools and implementations

  • Fixed the conda upload job (#11, #23)
torch-scan - Parameters, FLOPs and memory access profiler

Published by frgfm over 4 years ago

This release adds a module crawler to pick up relevant inference information.

Note: torchscan 0.1.0 requires PyTorch 1.1 or newer.

Highlights

Modules

In-hook information extraction for supported torch.nn.Module
New

  • Add FLOPs, MACs and DMAs estimation support for the following torch.nn.Module: Identity, Linear, Identity, ReLU, ELU, LeakyReLU, ReLU6, Tanh, Sigmoid, _ConvTransposeMixin, _ConvNd, _BatchNorm, _MaxPoolNd, _AvgPoolNd, _AdaptiveMaxPoolNd, _AdaptiveAvgPoolNd, Dropout (#1, #6, #7).

Process

Python process information related
New

  • Add get_process_gpu_ram to retrieve GPU RAM usage of the current Python process (#1).

## Crawler
Module hooking agent
New

  • Add crawl_module to store all module information in a python dict (#1, #6)
  • Add summary for high-level console-printed information (#1)

Test

Verifications of the package well-being before release
New

  • Add test for torchscan.modules (#1 , #6, #7)
  • Add test for torschscan.process (#1, #6)
  • Add test for torschscan.crawler (#6)
  • Add test for torschscan.utils (#1, #6)

Documentation

Online resources for potential users
New

  • Add sphinx automatic documentation build for existing features (#1)
  • Add contribution guidelines (#1)
  • Add installation, usage, and benchmark in readme (#1, #2, #8)

Others

Other tools and implementations

  • Add ̀format_infoto generate a string output from thecrawl_module` returned dictionary (#1).
  • Add aggregate_info to aggregate crawl_module output to a specific depth (#1).
  • Add scripts/benchmark.py to display crawl_module information on all torchvision classification models (#1 )

Notes: upon the next torch release, _ConvTransposeMixin will be renamed to _ConvTransposeNd

Package Rankings
Top 8.02% on Pypi.org
Related Projects