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)

SSD-based Object Detection in PyTorch

SSD-based Object Detection in PyTorch 서강대학교 현대모비스 SW 프로그램에서 진행한 인공지능 프로젝트입니다. Jetson nano를 이용해 pre-trained network를 fine tuning시켜 차량 및 신호등 인식을 구현하였습니다

Haneul Kim 1 Nov 16, 2021
Evaluating different engineering tricks that make RL work

Reinforcement Learning Tricks, Index This repository contains the code for the paper "Distilling Reinforcement Learning Tricks for Video Games". Short

Anssi 15 Dec 26, 2022
PartImageNet is a large, high-quality dataset with part segmentation annotations

PartImageNet: A Large, High-Quality Dataset of Parts We will release our dataset and scripts soon after cleaning and approval. Introduction PartImageN

Ju He 77 Nov 30, 2022
AgML is a comprehensive library for agricultural machine learning

AgML is a comprehensive library for agricultural machine learning. Currently, AgML provides access to a wealth of public agricultural datasets for common agricultural deep learning tasks.

Plant AI and Biophysics Lab 1 Jul 07, 2022
🤖 A Python library for learning and evaluating knowledge graph embeddings

PyKEEN PyKEEN (Python KnowlEdge EmbeddiNgs) is a Python package designed to train and evaluate knowledge graph embedding models (incorporating multi-m

PyKEEN 1.1k Jan 09, 2023
3D-aware GANs based on NeRF (arXiv).

CIPS-3D This repository will contain the code of the paper, CIPS-3D: A 3D-Aware Generator of GANs Based on Conditionally-Independent Pixel Synthesis.

Peterou 563 Dec 31, 2022
Proof of concept GnuCash Webinterface

Proof of Concept GnuCash Webinterface This may one day be a something truly great. Milestones [ ] Browse accounts and view transactions [ ] Record sim

Josh 14 Dec 28, 2022
Create animations for the optimization trajectory of neural nets

Animating the Optimization Trajectory of Neural Nets loss-landscape-anim lets you create animated optimization path in a 2D slice of the loss landscap

Logan Yang 81 Dec 25, 2022
基于Paddle框架的fcanet复现

fcanet-Paddle 基于Paddle框架的fcanet复现 fcanet 本项目基于paddlepaddle框架复现fcanet,并参加百度第三届论文复现赛,将在2021年5月15日比赛完后提供AIStudio链接~敬请期待 参考项目: frazerlin-fcanet 数据准备 本项目已挂

QuanHao Guo 7 Mar 07, 2022
K Closest Points and Maximum Clique Pruning for Efficient and Effective 3D Laser Scan Matching (To appear in RA-L 2022)

KCP The official implementation of KCP: k Closest Points and Maximum Clique Pruning for Efficient and Effective 3D Laser Scan Matching, accepted for p

Yu-Kai Lin 109 Dec 14, 2022
DFFNet: An IoT-perceptive Dual Feature Fusion Network for General Real-time Semantic Segmentation

DFFNet Paper DFFNet: An IoT-perceptive Dual Feature Fusion Network for General Real-time Semantic Segmentation. Xiangyan Tang, Wenxuan Tu, Keqiu Li, J

4 Sep 23, 2022
Code for `BCD Nets: Scalable Variational Approaches for Bayesian Causal Discovery`, Neurips 2021

This folder contains the code for 'Scalable Variational Approaches for Bayesian Causal Discovery'. Installation To install, use conda with conda env c

14 Sep 21, 2022
Seeing All the Angles: Learning Multiview Manipulation Policies for Contact-Rich Tasks from Demonstrations

Seeing All the Angles: Learning Multiview Manipulation Policies for Contact-Rich Tasks from Demonstrations Trevor Ablett, Daniel (Yifan) Zhai, Jonatha

STARS Laboratory 3 Feb 01, 2022
Python library for tracking human heads with FLAME (a 3D morphable head model)

Video Head Tracker 3D tracking library for human heads based on FLAME (a 3D morphable head model). The tracking algorithm is inspired by face2face. It

61 Dec 25, 2022
The mini-AlphaStar (mini-AS, or mAS) - mini-scale version (non-official) of the AlphaStar (AS)

A mini-scale reproduction code of the AlphaStar program. Note: the original AlphaStar is the AI proposed by DeepMind to play StarCraft II.

Ruo-Ze Liu 216 Jan 04, 2023
the code for our CVPR 2021 paper Bilateral Grid Learning for Stereo Matching Network [BGNet]

BGNet This repository contains the code for our CVPR 2021 paper Bilateral Grid Learning for Stereo Matching Network [BGNet] Environment Python 3.6.* C

3DCV developer 87 Nov 29, 2022
Spatial color quantization in Rust

rscolorq Rust port of Derrick Coetzee's scolorq, based on the 1998 paper "On spatial quantization of color images" by Jan Puzicha, Markus Held, Jens K

Collyn O'Kane 37 Dec 22, 2022
Bayesian optimization in PyTorch

BoTorch is a library for Bayesian Optimization built on PyTorch. BoTorch is currently in beta and under active development! Why BoTorch ? BoTorch Prov

2.5k Dec 31, 2022
DECAF: Generating Fair Synthetic Data Using Causally-Aware Generative Networks

DECAF (DEbiasing CAusal Fairness) Code Author: Trent Kyono This repository contains the code used for the "DECAF: Generating Fair Synthetic Data Using

van_der_Schaar \LAB 7 Nov 24, 2022
VOS: Learning What You Don’t Know by Virtual Outlier Synthesis

VOS This is the source code accompanying the paper VOS: Learning What You Don’t

248 Dec 25, 2022