All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Fixed
_strip
for eventuallyint
(#1667) - Fixed checking
target_formatter
as attrib type (#1665) - Fixed remote check in
download_data
(#1666)
- Added GATE backbone for Tabular integrations (#1559)
- Fixed datamodule can't load files with square brackets in names (#1501)
- Fixed channel dim selection on segmentation target (#1509)
- Fixed used of
jsonargparse
avoiding reliance on non-public internal logic (#1620) - Compatibility with
pytorch-tabular>=1.0
(#1545) - Compatibility latest
numpy
(#1595)
- Added support for CLIP backbones to the
TextClassifier
andImageClassifier
tasks (#1458)
- Fixed compatibility with
lightning==1.8.0
(#1479) - Fixed the error message to suggest installing
icevision
, if it's not found while loading data (#1474) - Fixed compatibility with
torchmetrics==0.10.0
(#1469) - Fixed type of
n_gram
from bool to int in TranslationTask (#1486)
- Added support for
from_tensors
forVideoClassification
(#1389) - Added fine-tuning strategies for DeepSpeed (with parameter loading and storing omitted) (#1377)
- Added
torchvision
as a requirement todatatype_audio.txt
as it's used for Audio Classification (#1425) - Added
figsize
andlimit_nb_samples
for showing batch images (#1381) - Added support for
from_lists
for Tabular Classification and Regression (#1337) - Added support for
from_dicts
for Tabular Classification and Regression (#1331) - Added support for using the
ImageEmbedder
SSL training for all image classifier backbones (#1264) - Added support for audio file formats to
AudioClassificationData
(#1085) - Added support for Flash serve to the
ObjectDetector
(#1370) - Added support for loading
ImageClassificationData
from PIL images withfrom_images
(#1372) - Added support for loading
ObjectDetectionData
withfrom_numpy
,from_images
, andfrom_tensors
(#1372) - Added support for remote data loading with fsspec (#1387)
- Added support for TSV files to
from_csv
methods (#1387) - Added support for more formats when loading audio files (#1387)
- Added support to use any task as an embedder by calling
as_embedder
(#1396) - Added support for normalization of images in
SemanticSegmentationData
(#1399)
- Changed the
ImageEmbedder
dependency on VISSL to optional (#1276) - Changed the transforms in
SemanticSegmentationData
to use albumentations instead of Kornia (#1313)
- Removed support for audio files with
sd2
extension, because SoundFile (for sd2 extension) doesn't accept fsspec objects (#1409)
- Fixed when suitable error not being raised for image segmentation (kornia) (#1425)
- Fixed the script of integrating
lightning-flash
withlearn2learn
(#1376) - Fixed JIT tracing tests where the model class was not attached to the
Trainer
class (#1410) - Fixed examples for BaaL integration by removing usage of
on_<stage>_dataloader
hooks (removed in PL 1.7.0) (#1410) - Fixed examples for BaaL integration for the case when
probabilities
list is empty (#1410) - Fixed a bug where collate functions were not being attached successfully after the
DataLoader
is initialized (in PL 1.7.0 changing attributes after initialization doesn't do anything) (#1410) - Fixed a bug where grayscale images were not properly converted to RGB when loaded. (#1394)
- Fixed a bug where size of mask for instance segmentation doesn't match to size of original image. (#1353)
- Fixed image classification data
show_train_batch
for subplots with rows > 1. (#1339) - Fixed support for all the versions (including the latest and older) of
baal
(#1315) - Fixed a bug where a loaded
TabularClassifier
orTabularRegressor
checkpoint could not be served (#1324) - Fixed a bug where the
freeze_unfreeze
andunfreeze_milestones
finetuning strategies could not be used in tandem with aonecyclelr
LR scheduler (#1329) - Fixed a bug where the backbone learning rate would be divided by 10 when unfrozen if using the
freeze_unfreeze
orunfreeze_milestones
strategies (#1329) - Fixed naming of optimizer and scheduler registries which did not allow manual optimization. (#1342)
- Fixed a bug where the
processor_backbone
argument toSpeechRecognition
was not used for decoding outputs (#1362) - Fixed a bug where
.npy
files could not be used withSemanticSegmentationData
(#1369)
- Fixed a bug where LR schedulers from HuggingFace could not be used with newer versions of PyTorch Lightning (#1307)
- Fixed a bug where the default Flash zero configurations for
ObjectDetector
,InstanceSegmentation
, andKeypointDetector
would error with the latest version of some requirements (#1306) - Fixed plain
LightningModule
support for Flash data modules (#1281)
- Fixed a bug where some backbones were incorrectly listed as available for the
ObjectDetector
,InstanceSegmentation
, andKeypointDetector
(#1267) - Fixed a bug where the backbone would not be frozen when finetuning the
SpeechRecognition
task (#1275) - Fixed a bug where the backbone would not be frozen when finetuning the
QuestionAnswering
task with certain model types (#1275)
- Fixed examples (question answering), where NLTK's
punkt
module needs to be downloaded first. (#1215) - Fixed normalizing inputs to video classification (#1213)
- Fixed a bug where
pretraining_transforms
in theImageEmbedder
was never called. (1196) - Fixed a bug where
BASE_MODEL_NAME
was not in the dict for dino and moco strategies. (1196) - Fixed support for
torch==1.11.0
(#1234) - Fixed DDP spawn support for
ObjectDetector
,InstanceSegmentation
, andKeypointDetector
(#1222) - Fixed a bug where
InstanceSegmentation
would fail if samples had an inconsistent number of bboxes, labels, and masks (these will now be treated as negative samples) (#1222) - Fixed a bug where collate functions were never called in the
ImageEmbedder
class. (#1217) - Fixed a bug where
ObjectDetector
,InstanceSegmentation
, andKeypointDetector
would log train and validation metrics with the same name (#1252) - Fixed a bug where using
ReduceLROnPlateau
would raise an error (#1251) - Fixed GPU support for self-supervised training with the
ImageEmbedder
(#1256)
- Added the normalization parameters of
torchvision.transforms.Normalize
astransform_kwargs
in theImageClassificationInputTransform
(#1178) - Added
available_outputs
method to theTask
(#1206)
- Fixed a bug where DDP would not work with Flash tasks (#1182)
- Fixed DDP support for
VideoClassifier
(#1189) - Fixed a bug where buffers in loss functions were not correctly registered in the
Task
(#1203) - Fixed support for passing a sampler instance to
from_*
methods / theDataModule
(#1204)
- 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) - Added support for
SemanticSegmentationData.from_folders
where mask files have different extensions to the image files (#1130) - Added
FlashRegistry
of Available Heads forflash.image.ImageClassifier
(#1152) - Added support for
ObjectDetectionData.from_files
(#1154) - Added support for passing the
Output
object (or a string e.g."labels"
) to theflash.Trainer.predict
method (#1157) - Added support for passing the
TargetFormatter
object tofrom_*
methods for classification to override target handling (#1171)
- Changed
Wav2Vec2Processor
toAutoProcessor
and separate it from backbone [optional] (#1075) - Renamed
ClassificationInput
toClassificationInputMixin
(#1116) - Changed the default
learning_rate
for all tasks to beNone
, corresponding to the default for your chosen optimizer (#1172)
- 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)
- Fixed a bug where loading Seq2Seq data for prediction would not work if the target field was not present (#1128)
- Fixed a bug where
from_fiftyone
classmethods did not work correctly with apredict_dataset
(#1136) - Fixed a bug where the
labels
property would returnNone
when usingObjectDetectionData.from_fiftyone
(#1136) - Fixed a bug where
TabularData
would not work correctly with no categorical variables (#1144) - Fixed a bug where loading
TabularForecastingData
for prediction would only yield a single sample per series (#1149) - Fixed a bug where backbones for the
ObjectDetector
,KeypointDetector
, andInstanceSegmentation
tasks were not always frozen correctly when finetuning (#1163) - Fixed a bug where
DataModule.multi_label
would sometimes beNone
when it had been inferred to beFalse
(#1165)
- Removed the
Seq2SeqData
base class (useTranslationData
orSummarizationData
directly) (#1128) - Removed the ability to attach the
Output
object directly to the model (#1157)
- 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)