Shortcuts

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

[0.8.2] - 2023-06-30

[0.8.2] - Changed

  • Added GATE backbone for Tabular integrations (#1559)

[0.8.2] - Fixed

  • 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)

[0.8.1] - 2022-11-08

[0.8.1] - Added

  • Added support for CLIP backbones to the TextClassifier and ImageClassifier tasks (#1458)

[0.8.1] - Fixed

  • 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)

[0.8.0] - 2022-09-02

[0.8.0] - Added

  • Added support for from_tensors for VideoClassification (#1389)

  • Added fine-tuning strategies for DeepSpeed (with parameter loading and storing omitted) (#1377)

  • Added torchvision as a requirement to datatype_audio.txt as it’s used for Audio Classification (#1425)

  • Added figsize and limit_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 with from_images (#1372)

  • Added support for loading ObjectDetectionData with from_numpy, from_images, and from_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)

[0.8.0] - Changed

  • Changed the ImageEmbedder dependency on VISSL to optional (#1276)

  • Changed the transforms in SemanticSegmentationData to use albumentations instead of Kornia (#1313)

[0.8.0] - Removed

  • Removed support for audio files with sd2 extension, because SoundFile (for sd2 extension) doesn’t accept fsspec objects (#1409)

[0.8.0] - Fixed

  • Fixed when suitable error not being raised for image segmentation (kornia) (#1425)

  • Fixed the script of integrating lightning-flash with learn2learn (#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 or TabularRegressor checkpoint could not be served (#1324)

  • Fixed a bug where the freeze_unfreeze and unfreeze_milestones finetuning strategies could not be used in tandem with a onecyclelr LR scheduler (#1329)

  • Fixed a bug where the backbone learning rate would be divided by 10 when unfrozen if using the freeze_unfreeze or unfreeze_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 to SpeechRecognition was not used for decoding outputs (#1362)

  • Fixed a bug where .npy files could not be used with SemanticSegmentationData (#1369)

[0.7.4] - 2022-04-27

[0.7.4] - Fixed

  • 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, and KeypointDetector would error with the latest version of some requirements (#1306)

  • Fixed plain LightningModule support for Flash data modules (#1281)

[0.7.3] - 2022-04-13

[0.7.3] - Fixed

  • Fixed a bug where some backbones were incorrectly listed as available for the ObjectDetector, InstanceSegmentation, and KeypointDetector (#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)

[0.7.2] - 2022-03-30

[0.7.2] - Fixed

  • 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 the ImageEmbedder 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, and KeypointDetector (#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, and KeypointDetector 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)

[0.7.1] - 2022-03-01

[0.7.1] - Added

  • Added the normalization parameters of torchvision.transforms.Normalize as transform_kwargs in the ImageClassificationInputTransform (#1178)

  • Added available_outputs method to the Task (#1206)

[0.7.1] - Fixed

  • 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 / the DataModule (#1204)

[0.7.0] - 2022-02-15

[0.7.0] - Added

  • 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 and from_data_frame to VideoClassificationData (#1117)

  • Added support for SemanticSegmentationData.from_folders where mask files have different extensions to the image files (#1130)

  • Added FlashRegistry of Available Heads for flash.image.ImageClassifier (#1152)

  • Added support for ObjectDetectionData.from_files (#1154)

  • Added support for passing the Output object (or a string e.g. "labels") to the flash.Trainer.predict method (#1157)

  • Added support for passing the TargetFormatter object to from_* methods for classification to override target handling (#1171)

[0.7.0] - Changed

  • Changed Wav2Vec2Processor to AutoProcessor and separate it from backbone [optional] (#1075)

  • Renamed ClassificationInput to ClassificationInputMixin (#1116)

  • Changed the default learning_rate for all tasks to be None, corresponding to the default for your chosen optimizer (#1172)

[0.7.0] - Fixed

  • Fixed a bug when not explicitly passing embedding_sizes to the TabularClassifier and TabularRegressor 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 the DataModule would not have the desired effect (#1079)

  • Fixed a bug where passing predict_data_frame to ImageClassificationData.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 or from_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 to from_coco / from_voc / from_via in IceVision tasks (#1102)

  • Fixed ObjectDetectionData.from_voc and ObjectDetectionData.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 a predict_dataset (#1136)

  • Fixed a bug where the labels property would return None when using ObjectDetectionData.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, and InstanceSegmentation tasks were not always frozen correctly when finetuning (#1163)

  • Fixed a bug where DataModule.multi_label would sometimes be None when it had been inferred to be False (#1165)

[0.7.0] - Removed

  • Removed the Seq2SeqData base class (use TranslationData or SummarizationData directly) (#1128)

  • Removed the ability to attach the Output object directly to the model (#1157)

[0.6.0] - 2021-12-13

[0.6.0] - Added

  • 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 the from_* methods from the DataModule (#1018)

[0.6.0] - Changed

  • Changed DataSource to Input (#929)

  • Changed Preprocess to InputTransform (#951)

  • Changed classes named *Serializer and properties / variables named serializer to be *Output and output respectively (#927)

  • Changed Postprocess to OutputTransform (#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 use AutoModelForCTC rather than just Wav2Vec2ForCTC (#874)

  • Changed the Deserializer to subclass ServeInput (#1013)

  • Added Output suffix to Preds, FiftyOneDetectionLabels, SegmentationLabels, FiftyOneDetectionLabels, DetectionLabels, Classes, FiftyOneLabels, Labels, Logits, Probabilities (#1011)

  • Changed from_files and from_folders from ObjectDetectionData, InstanceSegmentationData, KeypointDetectionData to support only the predicting stage (#1018)

  • Changed Image Classification Task to use the new DataModule API (#1025)

[0.6.0] - Deprecated

  • Deprecated flash.core.data.process.Serializer in favour of flash.core.data.io.output.Output (#927)

  • Deprecated Task.serializer in favour of Task.output (#927)

  • Deprecated flash.text.seq2seq.core.metrics in favour of torchmetrics[text] (#648)

  • Deprecated flash.core.data.data_source.DefaultDataKeys in favour of flash.DataKeys (#929)

  • Deprecated data_source argument to flash.Task.predict in favour of input (#929)

[0.6.0] - Fixed

  • 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)

[0.6.0] - Removed

  • Removed OutputMapping (#939)

  • Removed Output.enable and Output.disable (#939)

  • Removed OutputTransform.save_sample and save_data hooks (#948)

  • Removed InputTransform pre_tensor_transform, to_tensor_transform, post_tensor_transform hooks in favour of per_sample_transform (#1010)

  • Removed Task.predict, use Trainer.predict instead (#1030)

  • Removed the backbone argument from TextClassificationData, it is now sufficient to only provide a backbone argument to the TextClassifier (#1022)

  • Removed support for the serve_sanity_check argument in flash.Trainer (#1062)

[0.5.2] - 2021-11-05

[0.5.2] - Added

  • Added a TabularForecaster task based on PyTorch Forecasting (#647)

  • Added a TabularRegressor task (#892)

[0.5.2] - Fixed

  • 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)

[0.5.1] - 2021-10-26

[0.5.1] - Added

  • Added LabelStudio integration (#554)

  • Added support learn2learn training_strategy for ImageClassifier (#737)

  • Added vissl training_strategies for ImageEmbedder (#682)

  • Added support for from_data_frame to TextClassificationData (#785)

  • Added FastFace integration (#606)

  • Added support for from_lists to TextClassificationData (#805)

[0.5.1] - Changed

  • Changed the default num_workers on linux to 0 (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)

[0.5.1] - Fixed

  • 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)

[0.5.0] - 2021-09-07

[0.5.0] - Added

  • Added support for (input, target) style datasets (e.g. torchvision) to the from_datasets method (#552)

  • Added support for from_csv and from_data_frame to ImageClassificationData (#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 to SemanticSegmentation to change pretrained weights to load from segmentation-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 to ImageClassificationData and AudioClassificationData (#651)

  • Added support for from_csv to the AudioClassificationData (#651)

  • Added option to pass a resolver to the from_csv and from_pandas methods of ImageClassificationData, 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 and KeypointDetector 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 and from_tensors to AudioClassificationData (#745)

[0.5.0] - Changed

  • 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 the DataModule to take a Sampler type rather than instantiated object (#651)

  • Changed arguments to ObjectDetector, use head instead of model and append _fpn to the backbone name instead of the fpn argument (#608)

[0.5.0] - Fixed

  • 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 or TestClassifier (#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)

[0.4.0] - 2021-06-22

[0.4.0] - Added

  • 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 the DataModule to use when creating a DataLoader (#390)

  • Added support for multi-label text classification and toxic comments example (#401)

  • Added a sanity checking feature to flash.serve (#423)

[0.4.0] - Changed

  • Split backbone argument to SemanticSegmentation into backbone and head arguments (#412)

[0.4.0] - Fixed

  • 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)

[0.3.2] - 2021-06-08

[0.3.2] - Fixed

  • Fixed a bug where flash.Trainer.from_argparse_args + finetune would not work (#382)

[0.3.1] - 2021-06-08

[0.3.1] - Added

  • Added deeplabv3, lraspp, and unet backbones for the SemanticSegmentation task (#370)

[0.3.1] - Changed

  • Changed the installation command for extra features (#346)

  • Change resize interpolation default mode to nearest (#352)

[0.3.1] - Deprecated

  • Deprecated SemanticSegmentation backbone names torchvision/fcn_resnet50 and torchvision/fcn_resnet101, use fc_resnet50 and fcn_resnet101 instead (#370)

[0.3.1] - Fixed

  • 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 with overfit_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)

[0.3.0] - 2021-05-20

[0.3.0] - Added

  • 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)

[0.3.0] - Changed

  • Rename valid_ to val_ (#197)

  • Refactor preprocess_cls to preprocess, add Serializer, add DataPipelineState (#229)

[0.3.0] - Fixed

  • Fix DataPipeline resolution in Task (#212)

  • Fixed a bug where the backbone used in summarization was not correctly passed to the postprocess (#296)

[0.2.3] - 2021-04-17

[0.2.3] - Added

  • Added TIMM integration as backbones (#196)

[0.2.3] - Fixed

  • Fixed nltk.download (#210)

[0.2.2] - 2021-04-05

[0.2.2] - Changed

  • Switch to use torchmetrics (#169)

  • Better support for optimizer and schedulers (#232)

  • Update lightning version to v1.2 (#133)

[0.2.2] - Fixed

  • 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)

[0.2.1] - 2021-3-06

[0.2.1] - Added

  • Added RetinaNet & backbones to ObjectDetector Task (#121)

  • Added .csv image loading utils (#116, #117, #118)

[0.2.1] - Changed

  • Set inputs as optional (#109)

[0.2.1] - Fixed

  • Set minimal requirements (#62)

  • Fixed VGG backbone num_features (#154)

[0.2.0] - 2021-02-12

[0.2.0] - Added

  • 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)

[0.2.0] - Changed

  • Applied transform in FilePathDataset (#97)

  • Moved classification integration from vision root to folder (#86)

[0.2.0] - Fixed

  • Unfreeze default number of workers in datamodule (#57)

  • Fixed wrong label in FilePathDataset (#94)

[0.2.0] - Removed

  • Removed densenet161 duplicate in DENSENET_MODELS (#76)

  • Removed redundant num_features arg from Classification model (#88)

[0.1.0] - 2021-02-02

[0.1.0] - Added

  • Added flash_notebook examples (#9)

  • Added strategy to trainer.finetune with NoFreeze, Freeze, FreezeUnfreeze, UnfreezeMilestones Callbacks(#39)

  • Added SummarizationData, SummarizationTask and TranslationData, TranslationTask (#37)

  • Added ImageEmbedder (#36)