A collection of extensions and addons for fastai
Project description
fastxtend
fastxtend (fastai extended) is a collection of tools, extensions, and addons for fastai
Documentation
https://fastxtend.benjaminwarner.dev
Feature overview
General Features
- Flexible metrics which can log on train, valid, or both. Backwards compatible with fastai metrics.
- Easily use multiple losses and log each individual loss on train and valid.
- A simple profiler for profiling fastai training.
Vision
- Increase training speed using
ProgressiveResize
to automaticly apply progressive resizing. - Apply
MixUp
,CutMix
, or Augmentations withCutMixUp
orCutMixUpAugment
. - Additional image augmentations
- Support for running fastai batch transforms on CPU.
- More attention modules
- A flexible implementation of fastai’s xresnet.
Audio
TensorAudio
,TensorSpec
,TensorMelSpec
objects which maintain metadata and support plotting themselves using librosa.- A selection of performant audio augmentations inspired by fastaudio and torch-audiomentations.
- Uses TorchAudio to quickly convert
TensorAudio
waveforms intoTensorSpec
spectrograms orTensorMelSpec
mel spectrograms using the GPU. - Out of the box support for converting one
TensorAudio
to one or multipleTensorSpec
orTensorMelSpec
objects from the Datablock api. - Audio MixUp and CutMix Callbacks.
audio_learner
which merges multipleTensorSpec
orTensorMelSpec
objects before passing to the model.
Check out the documentation for additional splitters, callbacks, schedulers, utilities, and more.
Install
To install, run:
pip install fastxtend
To install with dependencies for vision, audio, or all tasks run one of:
pip install fastxtend[vision]
pip install fastxtend[audio]
pip install fastxtend[all]
Or to create an editable install:
git clone https://github.com/warner-benjamin/fastxtend.git
cd fastxtend
pip install -e ".[dev]"
Usage
Like fastai, fastxtend provides safe wildcard imports using python’s __all__
.
from fastai.vision.all import *
from fastxtend.vision.all import *
In general, import fastxtend after all fastai imports, as fastxtend modifies fastai. Any method modified by fastxtend is backwards compatible with the original fastai code.
Examples
Log an accuracy metric on the training set as a smoothed metric and validation set like normal:
Learner(..., metrics=[Accuracy(log_metric=LogMetric.Train, metric_type=MetricType.Smooth),
Accuracy()])
Log multiple losses as individual metrics on train and valid:
mloss = MultiLoss(loss_funcs=[nn.MSELoss, nn.L1Loss],
weights=[1, 3.5], loss_names=['mse_loss', 'l1_loss'])
Learner(..., loss_func=mloss, metrics=RMSE(), cbs=MultiLossCallback)
Apply MixUp, CutMix, or Augmentation while training:
Learner(..., cbs=CutMixUpAugment)
Profile a fastai training loop:
from fastxtend.callback import simpleprofiler
learn = Learner(...).profile()
learn.fit_one_cycle(2, 3e-3)
Train in channels last format:
Learner(...).to_channelslast()
Requirements
fastxtend requires fastai to be installed. See http://docs.fast.ai/ for installation instructions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fastxtend-0.0.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bb48d5102f5d5dead0bad0736862e5ef39cd02a29bad477bf19bbc651a5a8b8 |
|
MD5 | 301177e90bc24f42e285246f0f5e8b94 |
|
BLAKE2b-256 | 676a93d10574e47359e5490e94165d2f20a551176091543ac0d8645a3f9157f9 |