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.
ImageDataBunch.single_from_classes
has been removed
- every type of items now has a
reconstruct
method that does the opposite of.data
: taking the tensor data and creating the object back show_results
now works across applications- introducing
data.export()
that will save the internal information (classes, vocab in text, processors in tabular etc) need for inference in a file named 'export.pkl'. You can then create anempty_data
object by usingDataBunch.load_empty(path)
(wherepath
points to where this 'export.pkl' file is). This also works across applications.
show_batch
has been internally modified to actually grab a batch then showing it
get_files
andget_image_files
now returnPath
s relative topath
, instead of relative to.
ItemList.items
are also relative topath
where relevant, sinceget_files
is called internallycreate_func
is removed in the data API; subclass and change theget
method instead (in vision, you can subclass theopen
method if you want to change how the images are opened).
Vocab
andTabularTransform
can now be saved- Each application has its method to create an inference learner
model_summary
function for standard models (thanks to @noklam)- Added
pca
totorch.Tensor
- Add methods to get embeddings from
CollabLearner
verify_image
- now fixes files with corrupt EXIF data
- We can add transform to
y
in the data block API - metric fbeta for single classification (thanks to wy-q)
- ItemLists can now set
self.filter_missing_y
to automatically remove items from LabelLists training set that can't be labeled - revert xxmaj token and
deal_caps
rule
- xxmaj token and new
deal_caps
rule
Tokenizer
haspre_rules
andpost_rules
now (for before and after tokenization)mark_fields
is now default toFalse
FloatList
to do regression- Use of real neural nets in
collab
- Remove
TextFilesList
as you can now useTextList
instead - Consistent use of
cols
/col
in the data block API depending on if you can pass multiple columns or not - Collab is refactored with the data block API behind the scene
get_collab_learner
andget_tabular_learner
becomecollab_learner
andtabular_learner
for name harmonization accross applicationsget_embedding
becomesembedding
ImageDeleter
andImageRelabeler
are merged intoImageCleaner
show_batch
works withrows=1
- Pretrained language models are saved in the correct folder (.fastai/models/)
- Splitting too slow in the data block API
- Mixup losses work with predict and TTA (thanks to bharadwaj6)
- Wrong size for the added test set in the data block API (thanks to wdhorton)
- Fix to the QRNN (thanks to PiotrCzapla)
- No changes
Learner.predict
works accross applicationsLearner.show_batch
works accross applications
tools/build-docs
andtools/update-nbs
scripts combined into one script.- Big refactor of the data block API
download_images
works with different kind of suffixes (thanks to fpingham)
- 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- wrong dimension in dice (thanks to noklam)
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