Skip to content
This repository has been archived by the owner on Oct 9, 2023. It is now read-only.

Latest commit

 

History

History
518 lines (356 loc) · 41.4 KB

CHANGELOG.md

File metadata and controls

518 lines (356 loc) · 41.4 KB

Changelog

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

The format is based on Keep a Changelog.

[UnReleased] - 2023-MM-DD

Added

Changed

Fixed

  • Fixed _strip for eventually int (#1667)
  • Fixed checking target_formatter as attrib type (#1665)
  • Fixed remote check in download_data (#1666)

[0.8.2] - 2023-06-30

Changed

  • Added GATE backbone for Tabular integrations (#1559)

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

Added

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

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

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)

Changed

  • Changed the ImageEmbedder dependency on VISSL to optional (#1276)
  • Changed the transforms in SemanticSegmentationData to use albumentations instead of Kornia (#1313)

Removed

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

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

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

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

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

Added

  • Added the normalization parameters of torchvision.transforms.Normalize as transform_kwargs in the ImageClassificationInputTransform (#1178)
  • Added available_outputs method to the Task (#1206)

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

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)

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)

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)

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

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)

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)

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)

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)

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

Added

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

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

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)

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)

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

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)

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)

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

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)

Changed

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

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

Fixed

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

[0.3.1] - 2021-06-08

Added

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

Changed

  • Changed the installation command for extra features (#346)
  • Change resize interpolation default mode to nearest (#352)

Deprecated

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

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

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)

Changed

  • Rename valid_ to val_ (#197)
  • Refactor preprocess_cls to preprocess, add Serializer, add DataPipelineState (#229)

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

Added

  • Added TIMM integration as backbones (#196)

Fixed

  • Fixed nltk.download (#210)

[0.2.2] - 2021-04-05

Changed

  • Switch to use torchmetrics (#169)

  • Better support for optimizer and schedulers (#232)

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

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

Added

  • Added RetinaNet & backbones to ObjectDetector Task (#121)
  • Added .csv image loading utils (#116, #117, #118)

Changed

  • Set inputs as optional (#109)

Fixed

  • Set minimal requirements (#62)
  • Fixed VGG backbone num_features (#154)

[0.2.0] - 2021-02-12

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)

Changed

  • Applied transform in FilePathDataset (#97)
  • Moved classification integration from vision root to folder (#86)

Fixed

  • Unfreeze default number of workers in datamodule (#57)
  • Fixed wrong label in FilePathDataset (#94)

Removed

  • Removed densenet161 duplicate in DENSENET_MODELS (#76)
  • Removed redundant num_features arg from Classification model (#88)

[0.1.0] - 2021-02-02

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)