Skip to content

Releases: frgfm/torch-scan

v0.1.2: Improved project quality and some layers' support fixed

03 Aug 12:10
29fa4ed
Compare
Choose a tag to compare

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 🛠

  • docs: Renamed ref from master to main by @frgfm in #60

New Features 🚀

  • ci: Added FUNDING button by @frgfm in #71
  • docs: Added list of supported layers to documentation by @frgfm in #74

Bug Fixes 🐛

  • fix: Fixed RF computation and added effective stride and padding by @frgfm in #33
  • chore: Fixed doc deploy by @frgfm in #35
  • fix: Fixed MAC/FLOP computation for Linear in higher dimensions by @frgfm in #52
  • fix: read encoding with utf-8 by @joonas-yoon in #56
  • fix: Fixed GPU RAM estimation by @frgfm in #64
  • docs: Fixed author entry in pyproject by @frgfm in #67
  • fix: Fixed release job and conda recipe by @frgfm in #75

Improvements

  • fix: Fixed support of modules that are used multiple times during forward by @frgfm in #24
  • feat: Added support of dilation in receptive field computation by @frgfm in #28
  • chore: Added annotation typing by @frgfm in #30
  • style: Reorganized print with dynamic column width resolution by @frgfm in #32
  • feat: Switched correctly the RF computation order by @frgfm in #34
  • style: Fixed annotation typing by @frgfm in #38
  • chore: Updated CI jobs and added multi-version docs by @frgfm in #47
  • feat: Added FLOPS estimation support for nn.Transformer by @frgfm in #48
  • refactor: Improved project code quality by @frgfm in #53
  • refactor: Refactored setup and tool config into setup.cfg by @frgfm in #57
  • style: Added black formatting & refactored configs into pyproject.toml by @frgfm in #58
  • ci: Deprecates old requirements.txt by @frgfm in #59
  • docs: Updated documentation theme and README by @frgfm in #61
  • docs: Updated documentation theme by @frgfm in #62
  • style: Updated mypy and isort configs by @frgfm in #66
  • chore: Improved version specifiers and fixed conda recipe by @frgfm in #68
  • ci: Updates the Python version of the CI & file headers by @frgfm in #69
  • docs: Fixed README badge and updated documentation by @frgfm in #70
  • docs: Improved documentation build script by @frgfm in #72
  • style: Renamed variables to avoid built-in names by @frgfm in #73

New Contributors

Full Changelog: v0.1.1...v0.1.2

Extended module support and experimental receptive field computation

03 Aug 22:25
900eb16
Compare
Choose a tag to compare

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)

Parameters, FLOPs and memory access profiler

21 Mar 14:23
7ac9c83
Compare
Choose a tag to compare

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