Skip to main content

One line functions for common tasks

Project description

Utilities for simple needs

## Logging and plotting metrics
```python
from torch_snippets import Report

n_epochs = 5
log = Report(n_epochs)

for epoch in range(n_epochs):
    # No need to --> train_epoch_losses, train_epoch_accuracies = [], []
    N = len(trn_dl)
    for ix, batch in enumerate(iter(trn_dl)):
        ...
        pos = (epoch + (ix+1)/N) # a float between 0 - n_epochs
        # give any number of kwargs that need to be reported and stored.
        # args should be float
        log.record(pos=pos, train_acc=np.mean(is_correct), train_loss=batch_loss, end='\r') # impersistent log

    N = len(val_dl)
    for ix, batch in enumerate(iter(val_dl)):
        ...
        pos = (epoch + (ix+1)/N) # a float between 0 - n_epochs
        log.record(pos=pos, val_loss=batch_loss, end='\r') # impersistent log
    log.report_avgs(epoch+1) # persist the report

  • Auto calculates time remaining
  • No need to preinitialize empty lists
  • Automatically stores metrics as collection of key words
  • Persistent vs Transient logging (use end='\r')
>>> print(log.logged) # get logged metric names
# ['train_loss', 'train_acc', 'val_loss', 'val_acc']
>>> log.plot() # plot all the logged metrics
  • Auto calculates average of all metrics in an epoch

  • Plot entire training history with one command

  • selectively plot logged metrics using regex

>>> log.plot('*_loss')
# or you can list out the metrics that need plotting
# >>> log.plot(['train_acc','val_acc'])

Auxiliary Functions

There are simple functions that are overloaded to take inputs and perform repetitive tasks that usually take a few lines to write

Images

show, inspect, Glob, read

FilePaths

stem, Glob, parent, name

Dump and load python objects

loaddill,dumpdill

Misc

Tqdm, Timer, randint, unique, diff

Pytorch Modules

Reshape and Permute (nn.Modules)

and many more...

Install

pip install torch_snippets

Usage

import pytorch_snippets
dir(pytorch_snippets)


Project details


Release history Release notifications | RSS feed

This version

0.322

Download files

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

Source Distribution

torch_snippets-0.322.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

torch_snippets-0.322-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file torch_snippets-0.322.tar.gz.

File metadata

  • Download URL: torch_snippets-0.322.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.4

File hashes

Hashes for torch_snippets-0.322.tar.gz
Algorithm Hash digest
SHA256 2fdd68d878f750a2a4ab5e13381e5647371f0b908e839deaa6e4ab048b1daea8
MD5 dfa3cb0ea62373f40b85f50aa3adc1f2
BLAKE2b-256 ce1ee8dae817f9f5f7463045a5d9cadbf86c60d242966e5d14cddd3e50ee5187

See more details on using hashes here.

File details

Details for the file torch_snippets-0.322-py3-none-any.whl.

File metadata

  • Download URL: torch_snippets-0.322-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.4

File hashes

Hashes for torch_snippets-0.322-py3-none-any.whl
Algorithm Hash digest
SHA256 5a30fdfe24f612354f950ad510f63604893f700f3d7f35677b637386913108f8
MD5 d8afc80fff69e1bf2655674a5ac9da49
BLAKE2b-256 5eb2d8eef52693b8539f7f41a7a76ac30b53810ec5e0bc46557635ecf479e3d9

See more details on using hashes here.

Supported by

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