All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- (BREAKING): Now uses MLUtils.jl to create and load datasets and data containers
- Replaces dependencies MLDataPattern.jl, LearnBase.jl, and DataLoaders.jl
- Data containers must now implement the
Base.getindex/MLUtils.getobsandBase.length/MLUtils.numobsinterfaces. - Previously exported
MLDataPattern.datasubsethas been replaced byMLUtils.ObsView - Documentation has been updated appropriately
- (BREAKING):
FastAI.Visionnow lives in a separate packageFastVisionthat holds all computer vision-related functionality. - (BREAKING):
FastAI.Tabularnow lives in a separate packageFastTabularthat holds all tabular data-related functionality.
- (BREAKING):
FastAI.Modelssubmodule.Modelssubmodule of domain libraries, e.g.FastVision.Modelsshould now be used.
- Feature registries let you find datasets, data recipes and learning tasks for your projects. It is now easier to search for functionality related to kinds of data and load it. See the updated discovery tutorial
- @Chandu-444 added first support for text datasets, adding the
Paragraphblock andFastAI.Textualsubmodule (#207)
- the old APIs for registries have been removed and functionality for accessing them (
finddatasets,loaddataset) has been deprecated. See the updated docs for how to find functionality using the new feature registries.
- Compatibility with FluxTraining.jl v0.3 (#223)
- New documentation frontend based on Pollen.jl: https://fluxml.ai/FastAI.jl/dev/i/
- Now supports Flux.jl v0.13 (#202)
- Now has ImageIO.jl as a dependency to ensure that fast jpg loading using JpegTurbo.jl is used
- Made block-based learning method more modular.
SupervisedMethodnow supplantsBlockMethod. PRgetencodingsandgetblocksshould now be used to get block information and encodings from a method- See the [new tutorial training a Variational Autoencoder].
- See also the docstrings for
AbstractBlockTaskandSupervisedTask
- (BREAKING): all learning method names have been renamed to task, i.e
method*->task*andMethod*->Task*. Specifically, these exported symbols are affected:BlockMethod->BlockTask,describemethod->describetask,methodmodel->taskmodel,methoddataset->taskdataset,methoddataloaders->taskdataloaders,methodlossfn->tasklossfn,findlearningmethods->findlearningtasks,methodlearner->tasklearner,savemethodmodel->savetaskmodel,loadmethodmodel->loadtaskmodel
BlockMethodnow deprecated in favor ofSupervisedMethod- (INTERNAL) domain-specific functionality has moved to submodules
FastAI.Vision(computer vision) andFastAI.Tabular(tabular data). Exports ofFastAIare not affected. - (INTERNAL) test suite now runs on InlineTest.jl
-
A new API for visualizing data. See this issue for motivation. This includes:
- High-level functions for visualizing data related to a learning method:
showsample,showsamples,showencodedsample,showencodedsamples,showbatch,showprediction,showpredictions,showoutput,showoutputs,showoutputbatch - Support for multiple backends, including a new text-based show backend that you can use to visualize data in a non-graphical environment. This is also the default unless
Makieis imported. - Functions for showing blocks directly:
showblock,showblocks - Interfaces for extension:
ShowBackend,showblock!,showblocks!
- High-level functions for visualizing data related to a learning method:
- The old visualization API incl. all its
plot*methods:plotbatch,plotsample,plotsamples,plotpredictions
- High-level API "FasterAI"
- dataset recipes
- learning method helpers
- Find datasets and learning methods based on
Blocks:finddatasets,findlearningmethods loaddatasetfor quickly loading data containers from configured recipes
- Data container recipes (
DatasetRecipe,loadrecipe) - Documentation setions for FasterAI interfaces:
- New interfaces
blockbackbonecreates a default backbone for an input block
- Support for tabular data along with recipes and learning methods:
- Documentation sections to reference FasterAI interfaces:
- README
- Introduction
- Data containers
- Combined how-tos on training into a single page
- Breaking changes to
methodlearner:- now accepts
callbacksas kwarg validdatano longer keywordmodelandbackbonenow kwargs;isbackboneremoved. if neitherbackboneormodelare given, usesblockbackbonefor default backbone.- see updated docstring for details
- now accepts