Skip to content

Latest commit

 

History

History
347 lines (207 loc) · 18.6 KB

CHANGELOG.md

File metadata and controls

347 lines (207 loc) · 18.6 KB

Release notes

2.3.1

New Features

  • Add support for pytorch 1.8 (#3349)
  • Add support for spacy3 (#3348)
  • Add support for Windows. Big thanks to Microsoft for many contributions to get this working
  • Timedistributed layer and Image Sequence Tutorial (#3124), thanks to @tcapelle
  • Add interactive run logging to AzureMLCallback (#3341), thanks to @yijinlee
  • Batch support for more than one image (#3339)
  • Have interp use ds_idx, add tests (#3332), thanks to @muellerzr
  • Automatically have fastai determine the right device, even with torch DataLoaders (#3330), thanks to @muellerzr
  • Add at_end feature to SaveModelCallback (#3296), thanks to @tmabraham
  • Improve inplace params in Tabular's new and allow for new and test_dl to be in place (#3292), thanks to @muellerzr
  • Update VSCode & Codespaces dev container (#3280), thanks to @bamurtaugh
  • Add max_scale param to RandomResizedCrop(GPU) (#3252), thanks to @kai-tub
  • Increase testing granularity for speedup (#3242), thanks to @ddobrinskiy

Bugs Squashed

  • Make TTA turn shuffle and drop_last off when using ds_idx (#3347), thanks to @muellerzr
  • Add order to TrackerCallback derived classes (#3346), thanks to @muellerzr
  • Prevent schedule from crashing close to the end of training (#3335), thanks to @Lewington-pitsos
  • Fix ability to use raw pytorch DataLoaders (#3328), thanks to @hamelsmu
  • Fix PixelShuffle_icnr weight (#3322), thanks to @pratX
  • Creation of new DataLoader in Learner.get_preds has wrong keyword (#3316), thanks to @tcapelle
  • Correct layers order in tabular learner (#3314), thanks to @gradientsky
  • Fix vmin parameter default (#3305), thanks to @tcapelle
  • Ensure call to one_batch places data on the right device (#3298), thanks to @tcapelle
  • Fix Cutmix Augmentation (#3259), thanks to @MrRobot2211
  • Fix custom tokenizers for DataLoaders (#3256), thanks to @iskode
  • fix error setting 'tok_tfm' parameter in TextDataloaders.from_folder
  • Fix lighting augmentation (#3255), thanks to @kai-tub
  • Fix CUDA variable serialization (#3253), thanks to @mszhanyi
  • change batch tfms to have the correct dimensionality (#3251), thanks to @trdvangraft
  • Ensure add_datepart adds elapsed as numeric column (#3230), thanks to @aberres

2.3.0

Breaking Changes

  • fix optimwrapper to work with param_groups (#3241), thanks to @tmabraham
    • OptimWrapper now has a different constructor signature, which makes it easier to wrap PyTorch optimizers

New Features

  • Support discriminative learning with OptimWrapper (#2829)

Bugs Squashed

  • Updated to support adding transforms to multiple dataloaders (#3268), thanks to @marii-moe
    • This fixes an issue in 2.2.7 which resulted in incorrect validation metrics when using Normalization

2.2.7

Bugs Squashed

  • Regression fix: Ensure add_datepart adds elapsed as numeric column (#3230), thanks to @aberres

2.2.6

Bugs Squashed

  • 2.2.5 was not released correctly - it was actually 2.2.3

2.2.5

New Features

  • Enhancement: Let TextDataLoaders take in a custom tok_text_col (#3208), thanks to @muellerzr
  • Changed dataloaders arguments to have consistent overrides (#3178), thanks to @marii-moe
  • Better support for iterable datasets (#3173), thanks to @jcaw

Bugs Squashed

  • BrokenProcessPool in download_images() on Windows (#3196)
  • error on predict() or using interp with resnet and MixUp (#3180)
  • Fix 'cat' attribute with pandas dataframe: AttributeError: Can only use .cat accessor with a 'category' dtype (#3165), thanks to @dreamflasher
  • cont_cat_split does not support pandas types (#3156)
  • DataBlock.dataloaders does not support the advertised "shuffle" argument (#3133)

2.2.3

New Features

  • Calculate correct nf in create_head based on concat_pool (#3115), thanks to @muellerzr

Bugs Squashed

  • wandb integration failing with latest wandb library (#3066)
  • Learner.load and LRFinder not functioning properly for the optimizer states (#2892)

2.2.2

Bugs Squashed

  • tensorboard and wandb can not access smooth_loss (#3131)

2.2.0

Breaking Changes

  • Promote NativeMixedPrecision to default MixedPrecision (and similar for Learner.to_fp16); old MixedPrecision is now called NonNativeMixedPrecision (#3127)
    • Use the new GradientClip callback instead of the clip parameter to use gradient clipping
  • Adding a Callback which has the same name as an attribute no longer raises an exception (#3109)
  • RNN training now requires RNNCallback, but does not require RNNRegularizer; out and raw_out have moved to RNNRegularizer (#3108)
    • Call rnn_cbs to get all callbacks needed for RNN training, optionally with regularization
  • replace callback run_after with order; do not run after cbs on exception (#3101)

New Features

  • Add GradientClip callback (#3107)
  • Make Flatten cast to TensorBase to simplify type compatibility (#3106)
  • make flattened metrics compatible with all tensor subclasses (#3105)
  • New class method TensorBase.register_func to register types for __torch_function__ (#3097)
  • new dynamic flag for controlling dynamic loss scaling in NativeMixedPrecision (#3096)
  • remove need to call to_native_fp32 before predict; set skipped in NativeMixedPrecision after NaN from dynamic loss scaling (#3095)
  • make native fp16 extensible with callbacks (#3094)
  • Calculate correct nf in create_head based on concat_pool (#3115) thanks to @muellerzr

2.1.10

New Features

Bugs Squashed

  • NoneType object has no attribute append in fastbook chapter 6 BIWI example (#3091)

2.1.9

New Features

  • Refactor MixUp and CutMix into MixHandler (#3037), thanks to @muellerzr
    • Refactors into a general MixHandler class, with MixUp and CutMix simply implementing a before_batch to perform the data augmentation. See fastai.callback.mixup

Bugs Squashed

  • Gradient Accumulation + Mixed Precision shows artificially high training loss (#3048)

2.1.8

New Features

Bugs Squashed

  • Update for fastcore negate_func->not_
  • LR too high for gradient accumulation (#3040), thanks to @marii-moe
  • Torchscript transforms incompatibility with nn.Sequential (#2920)

2.1.7

New Features

  • Pytorch 1.7 subclassing support (#2769)

Bugs Squashed

  • unsupported operand type(s) for +=: 'TensorCategory' and 'TensorText' when using AWD_LSTM for text classification (#3027)
  • UserWarning when using SaveModelCallback() on after_epoch (#3025)
  • Segmentation error: no implementation found for 'torch.nn.functional.cross_entropy' on types that implement torch_function (#3022)
  • TextDataLoaders.from_df() returns TypeError: 'float' object is not iterable (#2978)
  • Internal assert error in awd_qrnn (#2967)

2.1.6

New Features

  • Option to preserve filenames in download_images (#2983), thanks to @mess-lelouch
  • Deprecate config in create_cnn and instead pass kwargs directly (#2966), thanks to @borisdayma

Bugs Squashed

  • Progress and Recorder callbacks serialize their data, resulting in large Learner export file sizes (#2981)
  • TextDataLoaders.from_df() returns TypeError: 'float' object is not iterable (#2978)
  • "only one element tensors can be converted to Python scalars" exception in Siamese Tutorial (#2973)
  • Learn.load and LRFinder not functioning properly for the optimizer states (#2892)

2.1.5

Breaking Changes

  • remove log_args (#2954)

New Features

  • Improve performance of RandomSplitter (h/t @muellerzr) (#2957)

Bugs Squashed

  • Exporting TabularLearner via learn.export() leads to huge file size (#2945)
  • TensorPoint object has no attribute img_size (#2950)

2.1.4

Breaking Changes

  • moved has_children from nn.Module to free function (#2931)

New Features

  • Support persistent workers (#2768)

Bugs Squashed

  • unet_learner segmentation fails (#2939)
  • In "Transfer learning in text" tutorial, the "dls.show_batch()" show wrong outputs (#2910)
  • Learn.load and LRFinder not functioning properly for the optimizer states (#2892)
  • Documentation for Show_Images broken (#2876)
  • URL link for documentation for torch_core library from the doc() method gives incorrect url (#2872)

2.1.3

Bugs Squashed

  • Work around broken PyTorch subclassing of some new_* methods (#2769)

2.1.0

New Features

  • PyTorch 1.7 compatibility (#2917)

PyTorch 1.7 includes support for tensor subclassing, so we have replaced much of our custom subclassing code with PyTorch's. We have seen a few bugs in PyTorch's subclassing feature, however, so please file an issue if you see any code failing now which was working before.

There is one breaking change in this version of fastai, which is that custom metadata is now stored directly in tensors as standard python attributes, instead of in the special _meta attribute. Only advanced customization of fastai OO tensors would have used this functionality, so if you do not know what this all means, then it means you did not use it.

2.0.19

This version was released after 2.1.0, and adds fastcore 1.3 compatibility, whilst maintaining PyTorch 1.6 compatibility. It has no new features or bug fixes.

2.0.18

Forthcoming breaking changes

The next version of fastai will be 2.1. It will require PyTorch 1.7, which has significant foundational changes. It should not require any code changes except for people doing sophisticated tensor subclassing work, but nonetheless we recommend testing carefully. Therefore, we recommend pinning your fastai version to <2.1 if you are not able to fully test your fastai code when the new version comes out.

Dependencies

  • pin pytorch (<1.7) and torchvision (<0.8) requirements (#2915)
  • Add version pin for fastcore
  • Remove version pin for sentencepiece

2.0.16

New Features

  • added support for tb projector word embeddings (#2853), thanks to @floleuerer
  • Added ability to have variable length draw (#2845), thanks to @marii-moe
  • add pip upgrade cell to all notebooks, to ensure colab has current fastai version (#2843)

Bugs Squashed

  • fix TabularDataLoaders inference of cont_names to keep y_names separate (#2859), thanks to @sutt

2.0.15

Breaking Changes

  • loss functions were moved to loss.py (#2843)

2.0.14

New Features

  • new callback event: after_create (#2842)

    • This event runs after a Learner is constructed. It's useful for initial setup which isn't needed for every fit, but just once for each Learner (such as setting initial defaults).
  • Modified XResNet to support Conv1d / Conv3d (#2744), thanks to @floleuerer

    • Supports different input dimensions, kernel sizes and stride (added parameters ndim, ks, stride). Tested with fastai_audio and fastai time series with promising results.

Bugs Squashed

  • img_size attribute for TensorPoint is not updated properly (#2799), thanks to @IRailean

2.0.13

Bugs Squashed

  • Undo breaking num_workers fix (#2804)
    • Some users found the recent addition of num_workers to inference functions was causing problems, particularly on Windows. This PR reverts that change, until we find a more reliable way to handle num_workers for inference.
  • learn.tta() fails on a learner imported with load_learner() (#2764)
  • learn.summary() crashes out on 2nd transfer learning (#2735)

2.0.12

Bugs Squashed

  • Undo breaking num_workers fix (#2804)

2.0.11

Bugs Squashed

  • Fix cont_cat_split for multi-label classification (#2759)
  • fastbook error: "index 3 is out of bounds for dimension 0 with size 3" (#2792)

2.0.10

New Features

  • update for fastcore 1.0.5 (#2775)

2.0.6

New Features

  • "Remove pandas min version requirement" (#2765)
  • Modify XResNet to support Conv1d / Conv3d (#2744)
    • Also support different input dimensions, kernel sizes and stride (added parameters ndim, ks, stride).
  • Add support for multidimensional arrays for RNNDropout (#2737)
  • MCDropoutCallback to enable Monte Carlo Dropout in fastai. (#2733)
    • A new callback to enable Monte Carlo Dropout in fastai in the get_preds method. Monte Carlo Dropout is simply enabling dropout during inference. Calling get_preds multiple times and stacking them yield of a distribution of predictions that you can use to evaluate your prediction uncertainty.
  • adjustable workers in get_preds (#2721)

Version 2.0.0

  • Initial release of v2