All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
-
Added support for multi-label, space delimited, targets (#1076)
-
Added support for tabular classification / regression backbones from PyTorch Tabular (#1098)
-
Added Flash zero support for tabular regression (#1098)
-
Added support for COCO annotations with non-default keypoint labels to
KeypointDetectionData.from_coco
(#1102) -
Added support for
from_csv
andfrom_data_frame
toVideoClassificationData
(#1117)
-
Changed
Wav2Vec2Processor
toAutoProcessor
and seperate it from backbone [optional] (#1075) -
Renamed
ClassificationInput
toClassificationInputMixin
(#1116)
-
Fixed a bug when not explicitly passing
embedding_sizes
to theTabularClassifier
andTabularRegressor
tasks (#1067) -
Fixed a bug where under some circumstances transforms would not get called (#1072)
-
Fixed a bug where prediction would sometimes give the wrong number of outputs (#1077)
-
Fixed a bug where passing the
val_split
to theDataModule
would not have the desired effect (#1079) -
Fixed a bug where passing
predict_data_frame
toImageClassificationData.from_data_frame
raised an error (#1088) -
Fixed a bug where segmentation files / masks were loaded with an inconsistent ordering (#1094)
-
Fixed a bug with
AudioClassificationData.from_numpy
(#1096) -
Fixed a bug when using
SpeechRecognitionData.from_files
for training / validating / testing (#1097) -
Fixed a bug when using
SpeechRecognitionData.from_csv
orfrom_json
when predicting without targets (#1097) -
Fixed a bug where
SpeechRecognitionData.from_datasets
did not work as expected (#1097) -
Fixed a bug where loading data for prediction with
SemanticSegmentationData.from_folders
raised an error (#1101) -
Fixed a bug when passing a
predict_folder
argument tofrom_coco
/from_voc
/from_via
in IceVision tasks (#1102) -
Fixed
ObjectDetectionData.from_voc
andObjectDetectionData.from_via
(#1102) -
Fixed a bug where
InstanceSegmentationData.from_coco
would raise an error if not using file-based masks (#1102) -
Fixed
InstanceSegmentationData.from_voc
(#1102) -
Fixed a bug when loading tabular data for prediction without a target field / column (#1114)
-
Fixed a bug when loading prediction data for graph classification without targets (#1121)
- Added
TextEmbedder
task (#996) - Added predict_kwargs in
ObjectDetector
,InstanceSegmentation
,KeypointDetector
(#990) - Added backbones for
GraphClassifier
(#592) - Added
GraphEmbedder
task (#592) - Added support for comma delimited multi-label targets to the
ImageClassifier
(#997) - Added
datapipeline_state
on dataset creation within thefrom_*
methods from theDataModule
(#1018)
- Changed
DataSource
toInput
(#929) - Changed
Preprocess
toInputTransform
(#951) - Changed classes named
*Serializer
and properties / variables namedserializer
to be*Output
andoutput
respectively (#927) - Changed
Postprocess
toOutputTransform
(#942) - Changed loading of RGBA images to drop alpha channel by default (#946)
- Updated
FlashFinetuning
callback to use separate hooks that lets users use the freezing logic provided out-of-the-box from flash, route FlashFinetuning through a registry. (#830) - Changed the
SpeechRecognition
task to useAutoModelForCTC
rather than justWav2Vec2ForCTC
(#874) - Changed the
Deserializer
to subclassServeInput
(#1013) - Added
Output
suffix toPreds
,FiftyOneDetectionLabels
,SegmentationLabels
,FiftyOneDetectionLabels
,DetectionLabels
,Classes
,FiftyOneLabels
,Labels
,Logits
,Probabilities
(#1011) - Changed
from_files
andfrom_folders
fromObjectDetectionData
,InstanceSegmentationData
,KeypointDetectionData
to support only thepredicting
stage (#1018) - Changed
Image Classification Task
to use the new DataModule API (#1025)
- Deprecated
flash.core.data.process.Serializer
in favour offlash.core.data.io.output.Output
(#927) - Deprecated
Task.serializer
in favour ofTask.output
(#927) - Deprecated
flash.text.seq2seq.core.metrics
in favour oftorchmetrics[text]
(#648) - Deprecated
flash.core.data.data_source.DefaultDataKeys
in favour offlash.DataKeys
(#929) - Deprecated
data_source
argument toflash.Task.predict
in favour ofinput
(#929)
- Fixed a bug where using image classification with DDP spawn would trigger an infinite recursion (#969)
- Fixed a bug where Flash could not be used with IceVision 0.11.0 (#989)
- Fixed a bug where backbone weights were sometimes not frozen correctly (#992)
- Fixed a bug where translation metrics were not computed correctly (#992)
- Fixed a bug where additional
DataModule
keyword arguments could not be configured with Flash Zero for some tasks (#994) - Fixed a bug where the TabularForecaster would not work with some versions of pandas (#995)
- Removed
OutputMapping
(#939) - Removed
Output.enable
andOutput.disable
(#939) - Removed
OutputTransform.save_sample
andsave_data
hooks (#948) - Removed InputTransform
pre_tensor_transform
,to_tensor_transform
,post_tensor_transform
hooks in favour ofper_sample_transform
(#1010) - Removed
Task.predict
, useTrainer.predict
instead (#1030) - Removed the
backbone
argument fromTextClassificationData
, it is now sufficient to only provide abackbone
argument to theTextClassifier
(#1022) - Removed support for the
serve_sanity_check
argument inflash.Trainer
(#1062)
- Added a
TabularForecaster
task based on PyTorch Forecasting (#647) - Added a
TabularRegressor
task (#892)
- Fixed a bug where test metrics were not logged correctly with active learning (#879)
- Fixed a bug where validation metrics could be aggregated together with test metrics in some cases (#900)
- Fixed a bug where the latest versions of torchmetrics and Lightning Flash could not be installed together (#902)
- Fixed compatibility with PyTorch-Lightning 1.5 (#933)
- Added
LabelStudio
integration (#554) - Added support
learn2learn
training_strategy forImageClassifier
(#737) - Added
vissl
training_strategies forImageEmbedder
(#682) - Added support for
from_data_frame
toTextClassificationData
(#785) - Added
FastFace
integration (#606) - Added support for
from_lists
toTextClassificationData
(#805)
- Changed the default
num_workers
on linux to0
(matching the default for other OS) (#759) - Optimizer and LR Scheduler registry are used to get the respective inputs to the Task using a string (or a callable). (#777)
- Fixed a bug where additional kwargs (e.g. sampler) passed to tabular data would be ignored (#792)
- Fixed a bug where loading text data with additional non-numeric columns (not input or target) would give an error (#888)
- Added support for (input, target) style datasets (e.g. torchvision) to the from_datasets method (#552)
- Added support for
from_csv
andfrom_data_frame
toImageClassificationData
(#556) - Added SimCLR, SwAV, Barlow-twins pretrained weights for resnet50 backbone in ImageClassifier task (#560)
- Added support for Semantic Segmentation backbones and heads from
segmentation-models.pytorch
(#562) - Added support for nesting of
Task
objects (#575) - Added
PointCloudSegmentation
Task (#566) - Added
PointCloudObjectDetection
Task (#600) - Added a
GraphClassifier
task (#73) - Added the option to pass
pretrained
as a string toSemanticSegmentation
to change pretrained weights to load fromsegmentation-models.pytorch
(#587) - Added support for
field
parameter for loadng JSON based datasets in text tasks. (#585) - Added
AudioClassificationData
and an example for classifying audio spectrograms (#594) - Added a
SpeechRecognition
task for speech to text using Wav2Vec (#586) - Added Flash Zero, a zero code command line ML platform built with flash (#611)
- Added support for
.npy
and.npz
files toImageClassificationData
andAudioClassificationData
(#651) - Added support for
from_csv
to theAudioClassificationData
(#651) - Added option to pass a
resolver
to thefrom_csv
andfrom_pandas
methods ofImageClassificationData
, which is used to resolve filenames given IDs (#651) - Added integration with IceVision for the
ObjectDetector
(#608) - Added keypoint detection task (#608)
- Added instance segmentation task (#608)
- Added Torch ORT support to Transformer based tasks (#667)
- Added support for flash zero with the
InstanceSegmentation
andKeypointDetector
tasks (#672) - Added support for
in_chans
argument to the flash ResNet to control the expected number of input channels (#673) - Added a
QuestionAnswering
task for extractive question answering (#607) - Added automatic unwrapping of IceVision prediction objects (#727)
- Added support for the
ObjectDetector
with FiftyOne (#727) - Added support for MP3 files to the
SpeechRecognition
task with librosa (#726) - Added support for
from_numpy
andfrom_tensors
toAudioClassificationData
(#745)
- Changed how pretrained flag works for loading weights for ImageClassifier task (#560)
- Removed bolts pretrained weights for SSL from ImageClassifier task (#560)
- Changed the behaviour of the
sampler
argument of theDataModule
to take aSampler
type rather than instantiated object (#651) - Changed arguments to
ObjectDetector
, usehead
instead ofmodel
and append_fpn
to the backbone name instead of thefpn
argument (#608)
- Fixed a bug where serve sanity checking would not be triggered using the latest PyTorchLightning version (#493)
- Fixed a bug where train and validation metrics weren't being correctly computed (#559)
- Fixed a bug where an uncaught ValueError could be raised when checking if a module is available (#615)
- Fixed a bug where some tasks were not compatible with PyTorch 1.7 due to use of
torch.jit.isinstance
(#611) - Fixed a bug where custom samplers would not be properly forwarded to the data loader (#651)
- Fixed a bug where it was not possible to pass no metrics to the
ImageClassifier
orTestClassifier
(#660) - Fixed a bug where
drop_last
would be set to True during prediction and testing (#671) - Fixed a bug where flash was not compatible with pytorch-lightning >= 1.4.3 (#690)
- Added integration with FiftyOne (#360)
- Added
flash.serve
(#399) - Added support for
torch.jit
to tasks where possible and documented task JIT compatibility (#389) - Added option to provide a
Sampler
to theDataModule
to use when creating aDataLoader
(#390) - Added support for multi-label text classification and toxic comments example (#401)
- Added a sanity checking feature to flash.serve (#423)
- Split
backbone
argument toSemanticSegmentation
intobackbone
andhead
arguments (#412)
- Fixed a bug where the
DefaultDataKeys.METADATA
couldn't be a dict (#393) - Fixed a bug where the
SemanticSegmentation
task would not work as expected with finetuning callbacks (#412) - Fixed a bug where predict batches could not be visualized with
ImageClassificationData
(#438)
- Fixed a bug where
flash.Trainer.from_argparse_args
+finetune
would not work (#382)
- Added
deeplabv3
,lraspp
, andunet
backbones for theSemanticSegmentation
task (#370)
- Changed the installation command for extra features (#346)
- Change resize interpolation default mode to nearest (#352)
- Deprecated
SemanticSegmentation
backbone namestorchvision/fcn_resnet50
andtorchvision/fcn_resnet101
, usefc_resnet50
andfcn_resnet101
instead (#370)
- Fixed
flash.Trainer.add_argparse_args
not adding any arguments (#343) - Fixed a bug where the translation task wasn't decoding tokens properly (#332)
- Fixed a bug where huggingface tokenizers were sometimes being pickled (#332)
- Fixed issue with
KorniaParallelTransforms
to assure to share the random state between transforms (#351) - Fixed a bug where using
val_split
withoverfit_batches
would give an infinite recursion (#375) - Fixed a bug where some timm models were mistakenly given a
global_pool
argument (#377) - Fixed
flash.Trainer.from_argparse_args
not passing arguments correctly (#380)
- Added DataPipeline API (#188 #141 #207)
- Added timm integration (#196)
- Added BaseViz Callback (#201)
- Added backbone API (#204)
- Added support for Iterable auto dataset (#227)
- Added multi label support (#230)
- Added support for schedulers (#232)
- Added visualisation callback for image classification (#228)
- Added Video Classification task (#216)
- Added Dino backbone for image classification (#259)
- Added Data Sources API (#256 #264 #272)
- Refactor preprocess_cls to preprocess, add Serializer, add DataPipelineState (#229)
- Added Semantic Segmentation task (#239 #287 #290)
- Added Object detection prediction example (#283)
- Added Style Transfer task and accompanying finetuning and prediction examples (#262)
- Added a Template task and tutorials showing how to contribute a task to flash (#306)
- Rename valid_ to val_ (#197)
- Refactor preprocess_cls to preprocess, add Serializer, add DataPipelineState (#229)
- Fix DataPipeline resolution in Task (#212)
- Fixed a bug where the backbone used in summarization was not correctly passed to the postprocess (#296)
- Added TIMM integration as backbones (#196)
- Fixed nltk.download (#210)
-
Switch to use
torchmetrics
(#169) -
Better support for
optimizer
andschedulers
(#232) -
Update lightning version to v1.2 (#133)
-
Fixed classification softmax (#169)
-
Fixed a bug where loading from a local checkpoint that had
pretrained=True
without an internet connection would sometimes raise an error (#237) -
Don't download data if exists (#157)
- Added
RetinaNet
&backbones
toObjectDetector
Task (#121) - Added .csv image loading utils (#116, #117, #118)
- Set inputs as optional (#109)
- Added
ObjectDetector
Task (#56) - Added TabNet for tabular classification (#101)
- Added support for more backbones(mobilnet, vgg, densenet, resnext) (#45)
- Added backbones for image embedding model (#63)
- Added SWAV and SimCLR models to
imageclassifier
+ backbone reorg (#68)
- Applied transform in
FilePathDataset
(#97) - Moved classification integration from vision root to folder (#86)