Most recent releases are shown at the top. Each release shows:
- New: New classes, methods, functions, etc
- Changed: Additional paramaters, changes to inputs or outputs, etc
- Fixed: Bug fixes that don't change documented behaviour
Note that the top-most release is changes in the unreleased master branch on Github. Parentheses after an item show the name or github id of the contributor of that change.
- We no longer import submodule names automatically with
import *
- Callbacks are now inside the
callbacks
namespace if youfrom fastai import *
- All the
DataBunch
factory method use the data block API, the factory method ofDatasets
are deprecated and will be removed in a future version.
learn.predict
fixed
CSVLogger
callback (thanks to devorfu)- Initial support for image regression problems.
- If a dataset class has
learner_type
thencreate_cnn
uses that type to create theLearner
. - Introduce TaskType in
DatasetBase
to deal with single/multi-class or regression problems accross applications.
datasets()
now can automatically figure out what class to use in many situationsdownload_images()
now saves images with their original extensions
DataBunch.dl
replaces the variousholdout
,is_test
, andis_train
approaches with a single consistent enum.fastai.text
is fully compatible with the data block API.
download_url
reads the get request withiter_content
which is robust to 'content-length' errors. (thanks to Francisco Ingham and Zach Caceres)download_url
has a timeout
create_cnn
correctly calculates # features in body correctly for more architecturesTextDataset
has now two subclasses for the preprocessing steps and doesn't do that preprocesing automatically.TextDataBunch
doesn't save the result of preprocessing automatically, you have to useTextDataBunch.save
.RNNLearner.classifier
is nowtext_classifier_learner
andRNN_Learner.language_model
is nowlanguage_model_learner
.pil2tensor
is faster and works on more image types (thanks to kasparlund)- Imports in the file picker widget (thanks to Hiromi)
- Batches of size 1 will be removed during training because of the issue with BatchNorm1d
- Confusion matrix show ints if
normalize=False
(default) RNNLearner.get_preds
return the preds in the right order (thanks to StatisticDean)num_features_model
now works with any modelresize_method
wasn't properly set when passed toImageDataBunch
reset
the RNNs at the beginning of each epoch inRNNTrainer
- add an argument
resize_method
that tellsapply_tfms
how to resize the image to the desired size (crop, pad, squish or no). - all the image dataset have an
image_opener
attribute (defaultopen_image
) that can be changed. TheSegmentationDataset
has amask_opener
attribute. add_test
andadd_test_folder
in data block API.
- jupyter et al no longer forced dependencies
verify_images
can now resize images on top of checking they're not broken.- LR finder plot now uses python scientific notation instead of math superset notation
ImageDataBunch.from_df
doesn't change the dataframe.
- Fix jupyter dep version
- Add tiny datasets
- remove wrong
Fbeta
- fix implementation of
fbeta
ImageDataBunch.single_from_classes
to allow single image predictionsDatasetBase
hasset_item
andclear_item
to force it to always returnitem
DatasetBase
uses abstract_get_x
and_get_y
batch_size
property in DeviceDataLoaderClassificationLearner.predict
to get prediction on a single item- Monkey-patched torch.Tensor so matplotlib works
Learner.create_unet
- Data block API
validate
now takes optionaln_batch
create_cnn
now returns aClassificationLearner
return_path
flag toLearner.save
ImageDataBunch.show_batch()
now works for every type of dataset, removesshow_images
andshow_xy_images
as a result.- Monkey-patched torch.utils.data.dataloader.DataLoader to create a passthrough to the dataset
max_workers
fordownload_images
- Change the arguments of
ObjectDetectDataset
to make it consistent with the rest of the API, changes the return ofget_annotations
to go with it.
- remove empty classes in
ImageDataBunch.from_folder
ConvLearner
ctor is replaced by a function calledcreate_cnn
Learner
objects now determine from the loss function if there is something to add on top of the models to get the true predictions
- Add
recurse
flag toget_image_files
show_xy_images
takes tensors instead of Image- Add
classes
to SegmentationDataset get_preds
now return the true probabilitiesTTA
averages the probabilities and not the last activations of the modelClassificationInterpretation
has been changed accordingly and thesigmoid
argument has been deprecated
- Make
pred_batch
faster and remove redundent*
- Bug in
Learner.pred_batch
- Bug in
model_sizes
(thanks to dienhoa) - Bug in
RNNLearner.classifier
when used on a multilabel dataset
download_images
: multi-process download of a file or URLsverify_images
: multi-process verification of directory of images with optional deletion
ImageDataBunch.from_folder
now takesvalid_pct
- master bar support in
download_url
- various fixes to support the latest of
fastprogress
Learner.normalize()
(without args) stores calculated stats inLearner.stats
pred_batch
moved tobasic_train
and fixed for multiple inputslr_find()
prints the next step to type when completed- New version of fastprogress used; doesn't require ipywidgets
- Removed
cifar_norm
,cifar_denorm
,imagenet_norm
,imagenet_denorm
- pretrained language model is now downloaded directly in the .fastai/models/ folder. Use
pretrained_model=URLs.WT103
- add an argument
stop_div
toLearner.lr_find()
to prevent early stopping, useful for negative losses. - add an argument
convert_mode
toopen_mask
andSegmentationDataset
to choose the PIL conversion mode of the masks.
URLs.download_wt103()
has been removed
- change TextDataBunchClass method [
from_ids_files
,from_tokens
,from_df
,from_csv
,from_folder
] so that classes argument is passed to the call to TextDataset - Strip space from file name when CSV has spaces
- Handle missing
loss_func
attr - Pass on the
use_bn
parameter inget_tabular_learner
- Bad handling when final batch has size of 1
- rolled back numpy dependency to >=1.12 (anaconda package has a upper pin on it) and to pip>=9.0.1, the old version are buggy but should be ok for fastai
- Added missing
pyyaml
dependency to conda too
- Use
spacy.blank
instead ofspacy.load
to avoid having to download english model
- Added missing
pyyaml
dependency
EarlyStoppingCallback
,SaveModelCallback
,TerminateOnNaNCallback
(initial draft: fredguth)datapath4file(filename)
returns suitable path to store or find data file calledfilename
, using config file~/.fastai/config.yml
, and default data directory~/.fastai/data
, unless./data
exists and contains that file- MSELossFlat() loss function
- Simple integration tests for all applications
data
is now calledbasic_data
to avoid weird conflicts when naming our data objects data.datasets.untar_data
anddatasets.download_data
will now download to fastai home directory~/.fastai/data
if the dataset does not already exist locally./data
.
- add
dep_var
column intest_df
if it doesn't exists (Kevin Bird) - backwards=True when creating a LanguageModelLoader (mboyanov)
- Not released
- New class
ImagePoints
for targets that are a set of point coordinates - New function
Image.predict(learn:Learner)
to get the activations of the model inLearner
for an image - New function
Learner.validate
to validate on a given dl (defaultvalid_dl
), with maybe new metrics or callbacks - New function
error_rate
which is just1-accuracy()
- All vision models are now in the
models
module, including torchvision models (where tested and supported). So usemodels
instead oftvm
now. If your preferred torchvision model isn't imported, feel free to test it out and tell us on the forum if it works. And if it doesn't, a PR with a test and a fix would be appreciated! ImageBBox
is now a subclass ofImagePoints
- All metrics are now
Callback
. You can pass a regular function likeaccuracy
that will get averaged over batch or a fullCallback
that can do more complex things - All datasets convenience functions and paths are inside the
URLs
class URLs
that are a sample have name now suffixed with_SAMPLE
- Fix
WeightDropout
in RNNs whenp=0
pad_collate
gets itskwargs
fromTextClasDataBunch
- Add small
eps
tostd
inTabularDataset
to avoid division by zero fit_one_cycle
doesn't take other callbacks- Many broken docs links fixed
- Last release without CHANGES updates