Skip to main content

A collection of extensions and addons for fastai

Project description

fastxtend

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 with CutMixUp or CutMixUpAugment.
  • Additional image augmentations
  • Support for running fastai batch transforms on CPU.
  • More attention modules
  • A flexible implementation of fastai’s xresnet.

Audio

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


Download files

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

Source Distribution

fastxtend-0.0.11.tar.gz (80.3 kB view hashes)

Uploaded Source

Built Distribution

fastxtend-0.0.11-py3-none-any.whl (96.0 kB view hashes)

Uploaded Python 3

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