Releases: Lightning-Universe/lightning-flash
Feature Preview
Preview for 0.7.0
Data Overhaul
[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 thefrom_*
methods from theDataModule
(#1018)
Changed
- 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
- 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
- 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
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)
Contributors
@abhijithneilabraham @Actis92 @alexheat @ananyahjha93 @Borda @ethanwharris @flozi00 @karthikrangasai @PabloAMC @SkafteNicki @tchaton
If we forgot someone due to not matching commit email with GitHub account, let us know :]
Tabular forecasting and regression (+ bug fixes)
[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)
Contributors
@aniketmaurya @awaelchli @Borda @Dref360 @ethanwharris @pietrolesci @sumanmichael @twsl
If we forgot someone due to not matching commit email with GitHub account, let us know :]
Label Studio, Learn2Learn, VISSL, FastFace, and more
[0.5.1] - 2021-10-26
Added
- 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
- 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
- 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)
New Contributors
- @bamblebam made their first contribution in #735
- @dlangerm made their first contribution in #765
- @pietrolesci made their first contribution in #767
- @gianscarpe made their first contribution in #776
- @kingyiusuen made their first contribution in #785
- @Isaac-Flath made their first contribution in #799
- @KonstantinKorotaev made their first contribution in #554
- @borhanMorphy made their first contribution in #606
- @EStorm21 made their first contribution in #837
- @parmidaatg made their first contribution in #822
- @Darktex made their first contribution in #824
- @Dref360 made their first contribution in #861
PR List
- Bump version to 0.5.1dev by @ethanwharris in #749
- Docs for backbones by @bamblebam in #735
- Refactor unnecessary
else
/elif
whenif
block has areturn
statement by @deepsource-autofix in #751 - Clean up docs by @ethanwharris in #754
- Set logo to have a white background for dark mode by @SeanNaren in #757
- New README by @ethanwharris in #756
- Speed up and fix graph tests by @ethanwharris in #759
- Feature/output data keys by @dlangerm in #765
- Fix logo spacing by @SeanNaren in #766
- Move text backbones in separate module by @pietrolesci in #767
- Speed up question answering tests by @ethanwharris in #775
- [PoC] Add MetaLearning support through learn2learn by @tchaton in #737
- [Readme] Add training strategies by @tchaton in #780
- VISSL initial integration by @ananyahjha93 in #682
- Add thumbnails to card items by @SeanNaren in #787
- Document object detector augmentations by @gianscarpe in #776
- Fix RTD build by @ethanwharris in #789
- VISSL collate function/transforms restructure by @ananyahjha93 in #786
- TextClassificationData
from_dataframe
by @kingyiusuen in #785 - [Doc] Add learn2learn integrations documentation by @tchaton in #788
- [Doc] VISSL docs by @ananyahjha93 in #794
- Add sampler argument to tabular data by @ethanwharris in #792
- [Feat] Add ActiveLearning Loop Customization v2 by @tchaton in #779
- Update Readme by @Isaac-Flath in #799
- Update flash_zero.rst by @williamFalcon in #796
- Add question answering thumbnail by @SeanNaren in #810
- enable persistent workers for train and val dataloaders by @dlangerm in #812
- Adding integration with Label Studio by @KonstantinKorotaev in #554
- Add
from_lists
toTextClassificationData
by @kingyiusuen in #805 - [Doc] by @tchaton in #813
- Face Detection Task (task-a-thon) by @borhanMorphy in #606
- add Kaggle links by @Borda in #826
- [pre-commit.ci] pre-commit suggestions by @pre-commit-ci in #831
- Add val_loss and test_loss calculation and logging for QnA task by @karthikrangasai in #832
- Fix typo in learn2learn example by @EStorm21 in #837
- HotFix for doc build on master by @SeanNaren in #849
- Bump version to 0.5.1rc0 by @SeanNaren in #850
- Add FlashDataset by @tchaton in #851
- Add FlashDataset update by @tchaton in #853
- Missing docstring on methods by @SkafteNicki in #854
- Add PreprocessTransform by @tchaton in #852
- added query_size, and initial_num_labels. removed num_labels_randomly… by @parmidaatg in #822
- [bugfix] Change to torchmetrics instead of PL by @tchaton in #858
- [bugfix] Resolve bug with Lightning 1.5.0rc0 by @tchaton in #859
- Freeze structlog version by @tchaton in #860
- Add support for PreprocessTransform to FlashDatasets by @tchaton in #856
- Fix VideoClassificationData.from_files() not working by @Darktex in #824
- Fix predict DataLoader in Active learning by @Dref360 in #861
- Fix inference for instance segmentation by @SeanNaren in #857
- 2/n Add Custom Data Loading Tutorial + API improvement. by @tchaton in #855
- Rename PreprocessTransform to InputTransform by @tchaton in #868
- Add Serving to RunningStage by @tchaton in #872
- Refactor text data loading by @pietrolesci in #870
- PoC: Revamp optimizer and scheduler experience using registries by @karthikrangasai in #777
- VISSL datapipeline fix by @ananyahjha93 in #880
- Fix RTD Build by @ethanwharris in #887
- Fix text classification data loading by @ethanwharris in #888
- Update docutils package version in requirements by @awaelchli in #891
- Bump version to 0.5.1 by @ethanwharris in #890
Feature Preview
Preview release for 0.5.1
New integrations, 8 new tasks, Torch ORT support, Flash Zero, and more
[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
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
- 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
- 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)
Contributors
@ananyahjha93 @aniketmaurya @aribornstein @Borda @ethanwharris @flozi00 @hhsecond @hihunjin @karthikrangasai @Kinyugo @PeppeSaccardi @pmeier @SeanNaren @sumanmichael @tchaton @tszumowski
If we forgot someone due to not matching commit email with GitHub account, let us know :]
Feature preview
0.5.0rc0 Bump version to 0.5.0rc0 (#717)
Flash Serve, FiftyOne Integration, Multi-label Text Classification, and JIT Support
[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 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)
Changed
- Split
backbone
argument toSemanticSegmentation
intobackbone
andhead
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)
Contributors
@ehofesmann @ethanwharris @fstroth @lillekemiker @tchaton
Additional credits to @rlizzo @hhsecond @lantiga @luiscape for building the Flash Serve Engine.
If we forgot someone due to not matching commit email with GitHub account, let us know :]
Minor patch release
[0.3.2] - 2021-06-08
Fixed
- Fixed a bug where
flash.Trainer.from_argparse_args
+finetune
would not work (#382)
More segmentation backbones and bug fixes
[0.3.1] - 2021-06-08
Added
- Added
deeplabv3
,lraspp
, andunet
backbones for theSemanticSegmentation
task #370
Changed
- Changed the installation command for extra features #346
- Change resize interpolation default mode to nearest #352
Deprecated
- Deprecated
SemanticSegmentation
backbone namestorchvision/fcn_resnet50
andtorchvision/fcn_resnet101
, usefc_resnet50
andfcn_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
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
Contributors
@akihironitta @aribornstein @carmocca @deepseek-eoghan @edgarriba @ethanwharris
If we forgot someone due to not matching commit email with GitHub account, let us know :]