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_info` to generate a string output from the `crawl_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`_