An end-to-end PyTorch framework for image and video classification

Overview

GitHub license CircleCI PRs Welcome

What's New:

2020-11-20: Classy Vision v0.5 Released

New Features

  • Release Vision Transformers model implementation, with recipes(#646)
  • Implemented gradient clipping (#643)
  • Implemented gradient accumulation (#644)
  • Added support for AdamW (#636)
  • Added Precise batch norm hook (#592)
  • Added support for adaptive pooling in fully_convolutional_linear_head (#602)
  • Added support for sync batch norm group size (#534)
  • Added a CSV Hook to manually inspect model predictions
  • Added a ClassyModel tutorial (#485)
  • Migrated to Hydra 1.0 (#536)
  • Migrated off of tensorboardX (#488)

Breaking Changes

  • ClassyOptimizer API improvements
    • added OptionsView to retrieve options from the optimizer param_group
  • Removed ClassyModel.evaluation_mode (#521)
  • Removed ImageNetDataset, now a subset of ImagePathDataset (#494)
  • Renamed is_master to is_primary in distributed_util (#576)
2020-04-29: Classy Vision v0.4 Released

New Features

  • Release EfficientNet model implementation (#475)
  • Add support to convert any PyTorch model to a ClassyModel with the ability to attach heads to it (#461)
    • Added a corresponding tutorial on ClassyModel and ClassyHeads (#485)
  • Squeeze and Excitation support for ResNe(X)t and DenseNet models (#426, #427)
  • Made ClassyHooks registrable (#401) and configurable (#402)
  • Migrated to TorchElastic v0.2.0 (#464)
  • Add SyncBatchNorm support (#423)
  • Implement mixup train augmentation (#469)
  • Support LARC for SGD optimizer (#408)
  • Added convenience wrappers for Iterable datasets (#455)
  • Tensorboard improvements
    • Plot histograms of model weights to Tensorboard (#432)
    • Reduce data logged to tensorboard (#436)
  • Invalid (NaN / Inf) loss detection
  • Revamped logging (#478)
  • Add bn_weight_decay configuration option for ResNe(X)t models
  • Support specifying update_interval to Parameter Schedulers (#418)

Breaking changes

  • ClassificationTask API improvement and train_step, eval_step simplification
    • Removed local_variables from ClassificationTask (#411, #412, #413, #414, #416, #421)
    • Move use_gpu from ClassyTrainer to ClassificationTask (#468)
    • Move num_dataloader_workers out of ClassyTrainer (#477)
  • Rename lr to value in parameter schedulers (#417)
2020-03-06: Classy Vision v0.3 Released

Release notes

  • checkpoint_folder renamed to checkpoint_load_path (#379)
  • head support on DenseNet (#383)
  • Cleaner abstraction in ClassyTask/ClassyTrainer: eval_step, on_start, on_end, …
  • Speed metrics in TB (#385)
  • test_phase_period in ClassificationTask (#395)
  • support for losses with trainable parameters (#394)
  • Added presets for some typical ResNe(X)t configurations: #405)

About

Classy Vision is a new end-to-end, PyTorch-based framework for large-scale training of state-of-the-art image and video classification models. Previous computer vision (CV) libraries have been focused on providing components for users to build their own frameworks for their research. While this approach offers flexibility for researchers, in production settings it leads to duplicative efforts, and requires users to migrate research between frameworks and to relearn the minutiae of efficient distributed training and data loading. Our PyTorch-based CV framework offers a better solution for training at scale and for deploying to production. It offers several notable advantages:

  • Ease of use. The library features a modular, flexible design that allows anyone to train machine learning models on top of PyTorch using very simple abstractions. The system also has out-of-the-box integration with Amazon Web Services (AWS), facilitating research at scale and making it simple to move between research and production.
  • High performance. Researchers can use the framework to train Resnet50 on ImageNet in as little as 15 minutes, for example.
  • Demonstrated success in training at scale. We’ve used it to replicate the state-of-the-art results from the paper Exploring the Limits of Weakly Supervised Pretraining.
  • Integration with PyTorch Hub. AI researchers and engineers can download and fine-tune the best publically available ImageNet models with just a few lines of code.
  • Elastic training. We have also added experimental integration with PyTorch Elastic, which allows distributed training jobs to adjust as available resources in the cluster changes. It also makes distributed training robust to transient hardware failures.

Classy Vision is beta software. The project is under active development and our APIs are subject to change in future releases.

Installation

Installation Requirements

Make sure you have an up-to-date installation of PyTorch (1.6), Python (3.6) and torchvision (0.7). If you want to use GPUs, then a CUDA installation (10.1) is also required.

Installing the latest stable release

To install Classy Vision via pip:

pip install classy_vision

To install Classy Vision via conda (only works on linux):

conda install -c conda-forge classy_vision

Manual install of latest commit on master

Alternatively you can do a manual install.

git clone https://github.com/facebookresearch/ClassyVision.git
cd ClassyVision
pip install .

Getting started

Classy Vision aims to support a variety of projects to be built and open sourced on top of the core library. We provide utilities for setting up a project in a standard format with some simple generated examples to get started with. To start a new project:

classy-project my-project
cd my-project

We even include a simple, synthetic, training example to show how to use Classy Vision:

 ./classy_train.py --config configs/template_config.json

Voila! A few seconds later your first training run using our classification task should be done. Check out the results in the output folder:

ls output_<timestamp>/checkpoints/
checkpoint.torch model_phase-0_end.torch model_phase-1_end.torch model_phase-2_end.torch model_phase-3_end.torch

checkpoint.torch is the latest model (in this case, same as model_phase-3_end.torch), a checkpoint is saved at the end of each phase.

For more details / tutorials see the documentation section below.

Documentation

Please see our tutorials to learn how to get started on Classy Vision and customize your training runs. Full documentation is available here.

Join the Classy Vision community

See the CONTRIBUTING file for how to help out.

License

Classy Vision is MIT licensed, as found in the LICENSE file.

Citing Classy Vision

If you use Classy Vision in your work, please use the following BibTeX entry:

@article{adcock2019classy,
  title={Classy Vision},
  author={{Adcock}, A. and {Reis}, V. and {Singh}, M. and {Yan}, Z. and {van der Maaten} L., and {Zhang}, K. and {Motwani}, S. and {Guerin}, J. and {Goyal}, N. and {Misra}, I. and {Gustafson}, L. and {Changhan}, C. and {Goyal}, P.},
  howpublished = {\url{https://github.com/facebookresearch/ClassyVision}},
  year={2019}
}
Comments
  • new video data augmentation transform

    new video data augmentation transform

    Summary:

    • We add video transforms in TorchVision: https://github.com/pytorch/vision/pull/1306/
    • In ClassyVision, we add default transforms for training / test stage. Alternatively, user can also explicitly provide transform config in json config input. See an example in the unit test.
    • Video data transforms supports audio modality in the video dataset.
    • Compared with image transforms which only returns a torch.Tensor, video transforms return a dict where key is the modality name (e.g. {"video", "audio"}) and value is a torch.Tensor for the modality data.

    Reviewed By: taylorgordon20

    Differential Revision: D16999453

    CLA Signed Merged 
    opened by stephenyan1231 33
  • ValueError: bad value(s) in fds_to_keep

    ValueError: bad value(s) in fds_to_keep

    i use ucf-101 example but get this problem

    Traceback (most recent call last):
      File "/home/sucom/hdd_1T/project/video_rec/my_video_rec/self_video_train.py", line 160, in <module>
        trainer.train(task)
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/site-packages/classy_vision/trainer/local_trainer.py", line 27, in train
        super().train(task)
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/site-packages/classy_vision/trainer/classy_trainer.py", line 45, in train
        task.on_phase_start()
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/site-packages/classy_vision/tasks/classification_task.py", line 945, in on_phase_start
        self.advance_phase()
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/site-packages/classy_vision/tasks/classification_task.py", line 847, in advance_phase
        self.create_data_iterator()
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/site-packages/classy_vision/tasks/classification_task.py", line 900, in create_data_iterator
        self.data_iterator = iter(self.dataloaders[self.phase_type])
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 279, in __iter__
        return _MultiProcessingDataLoaderIter(self)
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 719, in __init__
        w.start()
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/multiprocessing/process.py", line 105, in start
        self._popen = self._Popen(self)
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/multiprocessing/context.py", line 284, in _Popen
        return Popen(process_obj)
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/multiprocessing/popen_spawn_posix.py", line 32, in __init__
        super().__init__(process_obj)
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/multiprocessing/popen_fork.py", line 19, in __init__
        self._launch(process_obj)
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/multiprocessing/popen_spawn_posix.py", line 59, in _launch
        cmd, self._fds)
      File "/home/sucom/.conda/envs/classy_vision/lib/python3.6/multiprocessing/util.py", line 417, in spawnv_passfds
        False, False, None)
    ValueError: bad value(s) in fds_to_keep
    
    opened by siyangbing 23
  • mean average precision meter

    mean average precision meter

    Summary: Average Precision (AP) summarizes a precision-recall curve as the weighted mean of precisions achieved at each threshold, with the increase in recall from the previous threshold used as the weight.

    See AP formal definition (https://scikit-learn.org/stable/modules/generated/sklearn.metrics.average_precision_score.html).

    Mean Average Precision is an average of AP over different classes.

    In this diff, we implement Mean Average Precision meter that is useful for multi-label classification task.

    Differential Revision: D18715190

    CLA Signed fb-exported 
    opened by stephenyan1231 23
  • Add support to normalize inputs in the heads

    Add support to normalize inputs in the heads

    Summary: Added a normalize_inputs argument to FullyConnectedHead and VisionTransformerHead.

    Added simple test cases for both heads

    Differential Revision: D25213285

    CLA Signed fb-exported 
    opened by mannatsingh 13
  • global reasoning unit

    global reasoning unit

    Summary:

    • Implement Global Reasoning Networks (glore) (https://arxiv.org/abs/1811.12814). The reference implementation is on Github (https://github.com/facebookresearch/GloRe)
    • Rename the json configs to tell whether glore is on or off. Therefore
      • train_kinetics400_glore_off_i3d50 means glore is off, but we use the baseline I3D-50 model in glore paper.
      • train_kinetics400_glore_on_i3d50 means glore is on and glore units are inserted into baseline I3D-50 model.
      • Similar changes are made to SlowFast sf json config. Since we only implement baseline I3D model used in SF, which is a slightly different I3D model from I3D model in glore, it is always off.

    Differential Revision: D18344566

    CLA Signed 
    opened by stephenyan1231 13
  • Optimizer state sharding - Not landing as-is, early feedback

    Optimizer state sharding - Not landing as-is, early feedback

    Summary: Bringing in fairscale to provide an optional state sharded optimizer in Classy, which should help in situations bounded by memory pressure. No new communication backend, this is using vanilla torch.distributed

    Differential Revision: D22518768

    CLA Signed Merged fb-exported 
    opened by blefaudeux 12
  • R(2+1)D unit

    R(2+1)D unit

    Summary:

    • Implement R(2+1)D unit (https://arxiv.org/abs/1711.11248).
    • Compared with vanilla R3D model, in R(2+1)D we replace a 3D conv with a 2D spatial conv and a 1D temporal conv, while the total No. of model parameters are kept the same.
    • We use R(2+1)D unit in ResNeXt3DStem and BasicTransformation.

    Differential Revision: D19084922

    CLA Signed fb-exported 
    opened by stephenyan1231 12
  • Add required example_args argument to prepare_fx and prepare_qat_fx

    Add required example_args argument to prepare_fx and prepare_qat_fx

    Summary: FX Graph Mode Quantization needs to know whether an fx node is a floating point Tensor before it can decide whether to insert observer/fake_quantize module or not, since we only insert observer/fake_quantize module for floating point Tensors. Currently we have some hacks to support this by defining some rules like NON_OBSERVABLE_ARG_DICT (https://github.com/pytorch/pytorch/blob/master/torch/ao/quantization/fx/utils.py#L496), but this approach is fragile and we do not plan to maintain it long term in the pytorch code base.

    As we discussed in the design review, we'd need to ask users to provide sample args and sample keyword args so that we can infer the type in a more robust way. This PR starts with changing the prepare_fx and prepare_qat_fx api to require user to either provide example arguments thrugh example_inputs, Note this api doesn't support kwargs, kwargs can make https://github.com/pytorch/pytorch/pull/76496#discussion_r861230047 (comment) simpler, but it will be rare, and even then we can still workaround with positional arguments, also torch.jit.trace(https://pytorch.org/docs/stable/generated/torch.jit.trace.html) and ShapeProp: https://github.com/pytorch/pytorch/blob/master/torch/fx/passes/shape_prop.py#L140 just have single positional args, we'll just use a single example_inputs argument for now.

    If needed, we can extend the api with an optional example_kwargs. e.g. in case when there are a lot of arguments for forward and it makes more sense to pass the arguments by keyword

    BC-breaking Note: Before: m = resnet18(...) m = prepare_fx(m, qconfig_dict)

    After: m = resnet18(...) m = prepare_fx(m, qconfig_dict, example_inputs=(torch.randn(1, 3, 224, 224),))

    Reviewed By: vkuzo, andrewor14

    Differential Revision: D35984526

    CLA Signed fb-exported 
    opened by jerryzh168 11
  • Load pretrained Imagenet models by pytorch

    Load pretrained Imagenet models by pytorch

    When I load a pretrained imagenet model by pytorch using a finetune task, an AssertionError: Checkpoint does not contain classy_state_dict was raised. So I want to know, how to load a imagenet model to initialize the backbone of a class model? Thank you.

    query 
    opened by Kongsea 11
  • add video_rescale transform for testing videos

    add video_rescale transform for testing videos

    Summary: For OSS, we use pyav video backend. It is different from video_reader backend in that it can not spatially rescale videos during video decoding.

    Therefore, for testing video, we need to rescale it first before doing Fully-Convolutional Network (FCN) style evaluation.

    With this diff, the users do not need to pre-rescale the video datasets ahead of model training.

    Differential Revision: D18409505

    CLA Signed Merged fb-exported 
    opened by stephenyan1231 11
  • Pytorch AMP

    Pytorch AMP

    Summary: Add Pytorch AMP support. A follow up for FairScale would be to add ShardedGradScaler, so that we support mixed precision with ShardedDDP and ShardedOptimizer

    Differential Revision: D25383305

    CLA Signed fb-exported 
    opened by blefaudeux 10
  • `from classy_vision import dataset` will fail with current version of torchvision (0.14.0)

    `from classy_vision import dataset` will fail with current version of torchvision (0.14.0)

    🐛 Bug

    One can't import classy_vision.dataset with the current version of torchvision==0.14.0.

    To Reproduce

    To reproduce the behavior run:

    from classy_vision import dataset
    

    the command should fail with

    ImportError: cannot import name Kinetics400 from 'torchvision.datasets.kinetics' (/usr/local/lib/python3.8/dist-packages/torchvision/datasets/kinetics.py)
    

    This is most likely because torchvision deprecated Kinetics400 in 0.12.0: https://pytorch.org/vision/0.12/generated/torchvision.datasets.Kinetics400.html?highlight=kinetics#torchvision.datasets.Kinetics400

    Expected behavior

    The command above should work flawlessly. Downgrading torchvision to 0.12.0 is a workaround for this issue - a constraint such as torchvision<= 0.12.0 may be added as fix in https://github.com/facebookresearch/ClassyVision/blob/74e83dd97afbc9371b336304af09548f5080fa9c/requirements.txt#L4

    Environment

    • What commands did you use to install Classy Vision (conda/pip/build from source)? pip
    • What does classy_vision.__version__ print? 0.6.0

    python collect_env.py gives me:

    PyTorch version: 1.13.0+cu116
    Is debug build: False
    CUDA used to build PyTorch: 11.6
    ROCM used to build PyTorch: N/A
    
    OS: Ubuntu 18.04.6 LTS (x86_64)
    GCC version: (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
    Clang version: 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
    CMake version: version 3.22.6
    Libc version: glibc-2.27
    
    Python version: 3.8.16 (default, Dec  7 2022, 01:12:13)  [GCC 7.5.0] (64-bit runtime)
    Python platform: Linux-5.10.133+-x86_64-with-glibc2.27
    Is CUDA available: False
    CUDA runtime version: 11.2.152
    CUDA_MODULE_LOADING set to: N/A
    GPU models and configuration: Could not collect
    Nvidia driver version: Could not collect
    cuDNN version: Probably one of the following:
    /usr/lib/x86_64-linux-gnu/libcudnn.so.8.1.1
    /usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.8.1.1
    /usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.8.1.1
    /usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.8.1.1
    /usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.8.1.1
    /usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8.1.1
    /usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8.1.1
    HIP runtime version: N/A
    MIOpen runtime version: N/A
    Is XNNPACK available: True
    
    Versions of relevant libraries:
    [pip3] numpy==1.21.6
    [pip3] torch==1.13.0+cu116
    [pip3] torchaudio==0.13.0+cu116
    [pip3] torchsummary==1.5.1
    [pip3] torchtext==0.14.0
    [pip3] torchvision==0.14.0+cu116
    
    opened by davidefiocco 0
  • Implement resize and train XRayVideo A/V with only resizing

    Implement resize and train XRayVideo A/V with only resizing

    Summary: We want to check whether training XRayVideo with simply video resizing (in addition to other existing transformation like horizontal flipping and normalization) without random corp is sufficient.

    The resize dimension is used as 224*224.

    workflow: f362077622 (Note: in the workflow fcc_mvit_dataset_v4p2_arkc.yaml is used which I renamed to fcc_mvit_dataset_v4p2_onlyresize.yaml in this diff.)

    As can be seen, the validation MAP goes to around .422 as opposed to 0.46 when random resized crop is used (f355567669) and rest of the configuration is kept the same. Hence, it is better to keep random resized crop.

    Differential Revision: D38522980

    CLA Signed fb-exported 
    opened by arjish 3
  • A minor documentation issue in efficientnet

    A minor documentation issue in efficientnet

    📚 Documentation

    efficientnet.py

    It's a clean and well documented code. Kudos to the authors and thank you for making it open source :)

    On the line 195, I think it's just an Excitation layer. Squeeze is being done by AdaptiveAvgPool2d.

    opened by vinayak015 1
  • IsADirectoryError: Caught IsADirectoryError in DataLoader worker process 0.

    IsADirectoryError: Caught IsADirectoryError in DataLoader worker process 0.

    ❓ Questions and Help

    I have created the data folder with the following structure

    train/label_1/aa.png train/label_2/bb.png val/label_1/cc.png

    and so on

    The config used is

    { "name": "classification_task", "num_epochs": 95, "loss": { "name": "CrossEntropyLoss" }, "dataset": { "train": { "name": "image_path", "batchsize_per_replica": 32, "num_samples": null, "use_shuffle": true, "transforms": [{ "name": "apply_transform_to_key", "transforms": [ {"name": "RandomResizedCrop", "size": 224}, {"name": "RandomHorizontalFlip"}, {"name": "ToTensor"}, { "name": "Normalize", "mean": [0.485, 0.456, 0.406], "std": [0.229, 0.224, 0.225] } ], "key": "input" }], "image_folder": "/Users/nitesh/Workspace/MSon/classification-models/classy-vision/xx-project/data/train" }, "test": { "name": "image_path", "batchsize_per_replica": 32, "num_samples": null, "use_shuffle": false, "transforms": [{ "name": "apply_transform_to_key", "transforms": [ {"name": "Resize", "size": 256}, {"name": "CenterCrop", "size": 224}, {"name": "ToTensor"}, { "name": "Normalize", "mean": [0.485, 0.456, 0.406], "std": [0.229, 0.224, 0.225] } ], "key": "input" }], "image_folder": "/Users/nitesh/Workspace/MSon/classification-models/classy-vision/xx-project/data/val" } }, "meters": { "accuracy": { "topk": [1, 5] } }, "model": { "name": "resnext3d", "frames_per_clip": 1, "input_planes": 3, "clip_crop_size": 224, "skip_transformation_type": "postactivated_shortcut", "residual_transformation_type": "postactivated_bottleneck_transformation", "num_blocks": [3, 4, 6, 3], "stem_name": "resnext3d_stem", "stem_planes": 64, "stem_temporal_kernel": 1, "stem_spatial_kernel": 7, "stem_maxpool": true, "stage_planes": 256, "stage_temporal_kernel_basis": [[1], [1], [1], [1]], "temporal_conv_1x1": [true, true, true, true], "stage_temporal_stride": [1, 1, 1, 1], "stage_spatial_stride": [1, 2, 2, 2], "num_groups": 1, "width_per_group": 64, "num_classes": 1000, "zero_init_residual_transform": true, "heads": [ { "name": "fully_convolutional_linear", "unique_id": "default_head", "pool_size": [1, 7, 7], "activation_func": "softmax", "num_classes": 1000, "fork_block": "pathway0-stage4-block2", "in_plane": 2048, "use_dropout": false } ] }, "optimizer": { "name": "sgd", "param_schedulers": { "lr": { "name": "multistep", "num_epochs": 95, "values": [0.1, 0.01, 0.001, 0.0001], "milestones": [30, 60, 90] } }, "weight_decay": 0.0001, "momentum": 0.9, "nesterov": true } }

    However while running the training its throwing an error. "IsADirectoryError: Caught IsADirectoryError in DataLoader worker process 0."

    Could you please help me to solve this ? I am quite new to ML

    opened by niteshgaba 2
  • Add fvcore exponential decay parameter scheduler to Classy Vision

    Add fvcore exponential decay parameter scheduler to Classy Vision

    Summary: Exponential parameter scheduler for fvcore/ClassyVision. This type of scheduler is useful as a LR scheduler when using EMA.

    Differential Revision: D27369474

    CLA Signed fb-exported 
    opened by lauragustafson 1
Releases(v0.6.0)
  • v0.6.0(Jul 19, 2021)

    New Features

    • Added compatibility with pytorch version 1.9.0 (#753)
    • Added RegNetZ model implementation (#713)
    • Redefined RegNetY 64GF to better performing model (#748) 
    • Added support for Pytorch AMP + ShardedDDP (#667)
    • Added support for cutmix in MixupTransform
    • Added support for a 1x1 convolution in the fully connected head (#712) 
    • Add support to normalize inputs in the heads (#664) 
    • Added support for SiLU activation in RegNets (#711) 
    • Added support for FP16 gradient communication in DDP (#709) 
    • Added reduction mode none in soft_target_cross_entropy_loss (#714) 
    • Added FLOPs computation to ViT (#746)
    • Upstreamed parameter schedulers to fvcore
    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Nov 20, 2020)

    New Features

    • Release Vision Transformers model implementation, with recipes(#646)
    • Implemented gradient clipping (#643)
    • Implemented gradient accumulation (#644)
    • Added support for AdamW (#636)
    • Added Precise batch norm hook (#592)
    • Added support for adaptive pooling in fully_convolutional_linear_head (#602)
    • Added support for sync batch norm group size (#534)
    • Added a CSV Hook to manually inspect model predictions
    • Added a ClassyModel tutorial (#485)
    • Migrated to Hydra 1.0 (#536)
    • Migrated off of tensorboardX (#488)

    Breaking Changes

    • ClassyOptimizer API improvements
      • added OptionsView to retrieve options from the optimizer param_group
    • Removed ClassyModel.evaluation_mode (#521)
    • Removed ImageNetDataset, now a subset of ImagePathDataset (#494)
    • Renamed is_master to is_primary in distributed_util (#576)
    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Apr 29, 2020)

    New Features

    • Release EfficientNet model implementation (#475)
    • Add support to convert any PyTorch model to a ClassyModel with the ability to attach heads to it (#461)
      • Added a corresponding tutorial on ClassyModel and ClassyHeads (#485)
    • Squeeze and Excitation support for ResNe(X)t and DenseNet models (#426, #427)
    • Made ClassyHooks registrable (#401) and configurable (#402)
    • Migrated to TorchElastic v0.2.0 (#464)
    • Add SyncBatchNorm support (#423)
    • Implement mixup train augmentation (#469)
    • Support LARC for SGD optimizer (#408)
    • Added convenience wrappers for Iterable datasets (#455)
    • Tensorboard improvements
      • Plot histograms of model weights to Tensorboard (#432)
      • Reduce data logged to tensorboard (#436)
    • Invalid (NaN / Inf) loss detection
    • Revamped logging (#478)
    • Add bn_weight_decay configuration option for ResNe(X)t models
    • Support specifying update_interval to Parameter Schedulers (#418)

    Breaking changes

    • ClassificationTask API improvement and train_step, eval_step simplification
      • Removed local_variables from ClassificationTask (#411, #412, #413, #414, #416, #421)
      • Move use_gpu from ClassyTrainer to ClassificationTask (#468)
      • Move num_dataloader_workers out of ClassyTrainer (#477)
    • Rename lr to value in parameter schedulers (#417)
    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Mar 6, 2020)

    V0.30 release notes:

    • checkpoint_folder renamed to checkpoint_load_path: https://github.com/facebookresearch/ClassyVision/pull/379
    • head support on DenseNet: https://github.com/facebookresearch/ClassyVision/pull/383
    • Cleaner abstraction in ClassyTask/ClassyTrainer: eval_step, on_start, on_end, …
    • Speed metrics in TB: https://github.com/facebookresearch/ClassyVision/pull/385
    • test_phase_period in ClassificationTask https://github.com/facebookresearch/ClassyVision/pull/395
    • support for losses with trainable parameters https://github.com/facebookresearch/ClassyVision/pull/394
    • Added presets for some typical resNe(X)t configurations: https://github.com/facebookresearch/ClassyVision/pull/405
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Jan 24, 2020)

    Classy Vision v0.2 release notes

    New features:

    • Adam optimizer (https://github.com/facebookresearch/ClassyVision/pull/301)
    • R(2+1)d units (https://github.com/facebookresearch/ClassyVision/pull/322)
    • Mixed precision training (https://github.com/facebookresearch/ClassyVision/pull/338)
    • One-hot targets in meters (https://github.com/facebookresearch/ClassyVision/pull/349)

    This release has been tested on the latest PyTorch (1.4) and torchvision (0.5) releases. It also includes bug fixes and other smaller features.

    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Dec 5, 2019)

Towards End-to-end Video-based Eye Tracking

Towards End-to-end Video-based Eye Tracking The code accompanying our ECCV 2020 publication and dataset, EVE. Authors: Seonwook Park, Emre Aksan, Xuco

Seonwook Park 76 Dec 12, 2022
ACL'2021: LM-BFF: Better Few-shot Fine-tuning of Language Models

LM-BFF (Better Few-shot Fine-tuning of Language Models) This is the implementation of the paper Making Pre-trained Language Models Better Few-shot Lea

Princeton Natural Language Processing 607 Jan 07, 2023
Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields.

This repository contains the code release for Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields. This implementation is written in JAX, and is a fork of Google's JaxNeRF

Google 625 Dec 30, 2022
My 1st place solution at Kaggle Hotel-ID 2021

1st place solution at Kaggle Hotel-ID My 1st place solution at Kaggle Hotel-ID to Combat Human Trafficking 2021. https://www.kaggle.com/c/hotel-id-202

Kohei Ozaki 18 Aug 19, 2022
Here we present the implementation in TensorFlow of our work about liver lesion segmentation accepted in the Machine Learning 4 Health Workshop

Detection-aided liver lesion segmentation Here we present the implementation in TensorFlow of our work about liver lesion segmentation accepted in the

Image Processing Group - BarcelonaTECH - UPC 96 Oct 26, 2022
working repo for my xumx-sliCQ submissions to the ISMIR 2021 MDX

Music Demixing Challenge - xumx-sliCQ This repository is the GitHub mirror of my working submission repository for the AICrowd ISMIR 2021 Music Demixi

4 Aug 25, 2021
Pretraining Representations For Data-Efficient Reinforcement Learning

Pretraining Representations For Data-Efficient Reinforcement Learning Max Schwarzer, Nitarshan Rajkumar, Michael Noukhovitch, Ankesh Anand, Laurent Ch

Mila 40 Dec 11, 2022
This is the official pytorch implementation of the BoxEL for the description logic EL++

BoxEL: Box EL++ Embedding This is the official pytorch implementation of the BoxEL for the description logic EL++. BoxEL++ is a geometric approach bas

1 Nov 03, 2022
PyTorch implementation of the cross-modality generative model that synthesizes dance from music.

Dancing to Music PyTorch implementation of the cross-modality generative model that synthesizes dance from music. Paper Hsin-Ying Lee, Xiaodong Yang,

NVIDIA Research Projects 485 Dec 26, 2022
Reproduce partial features of DeePMD-kit using PyTorch.

DeePMD-kit on PyTorch For better understand DeePMD-kit, we implement its partial features using PyTorch and expose interface consuing descriptors. Tec

Shaochen Shi 8 Dec 17, 2022
MoveNet Single Pose on OpenVINO

MoveNet Single Pose tracking on OpenVINO Running Google MoveNet Single Pose models on OpenVINO. A convolutional neural network model that runs on RGB

35 Nov 11, 2022
Minimal implementation of Denoised Smoothing: A Provable Defense for Pretrained Classifiers in TensorFlow.

Denoised-Smoothing-TF Minimal implementation of Denoised Smoothing: A Provable Defense for Pretrained Classifiers in TensorFlow. Denoised Smoothing is

Sayak Paul 19 Dec 11, 2022
Official PyTorch implementation of the paper "Graph-based Generative Face Anonymisation with Pose Preservation" in ICIAP 2021

Contents AnonyGAN Installation Dataset Preparation Generating Images Using Pretrained Model Train and Test New Models Evaluation Acknowledgments Citat

Nicola Dall'Asen 10 May 24, 2022
An implementation of paper `Real-time Convolutional Neural Networks for Emotion and Gender Classification` with PaddlePaddle.

简介 通过PaddlePaddle框架复现了论文 Real-time Convolutional Neural Networks for Emotion and Gender Classification 中提出的两个模型,分别是SimpleCNN和MiniXception。利用 imdb_crop

8 Mar 11, 2022
利用Tensorflow实现基于CNN的中文短文本分类

Text Classification with CNN 使用卷积神经网络进行中文文本分类 CNN做句子分类的论文可以参看: Convolutional Neural Networks for Sentence Classification 还可以去读dennybritz大牛的博客:Implemen

Jeremiah 4 Nov 08, 2022
RaftMLP: How Much Can Be Done Without Attention and with Less Spatial Locality?

RaftMLP RaftMLP: How Much Can Be Done Without Attention and with Less Spatial Locality? By Yuki Tatsunami and Masato Taki (Rikkyo University) [arxiv]

Okojo 20 Aug 31, 2022
CS583: Deep Learning

CS583: Deep Learning

Shusen Wang 2.6k Dec 30, 2022
[NeurIPS2021] Code Release of K-Net: Towards Unified Image Segmentation

K-Net: Towards Unified Image Segmentation Introduction This is an official release of the paper K-Net:Towards Unified Image Segmentation. K-Net will a

Wenwei Zhang 423 Jan 02, 2023
Use MATLAB to simulate the signal and extract features. Use PyTorch to build and train deep network to do spectrum sensing.

Deep-Learning-based-Spectrum-Sensing Use MATLAB to simulate the signal and extract features. Use PyTorch to build and train deep network to do spectru

10 Dec 14, 2022
Convex optimization for fun and profit.

CFMM Optimal Routing This repository contains the code needed to generate the figures used in the paper Optimal Routing for Constant Function Market M

Guillermo Angeris 183 Dec 29, 2022