Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add classy OSS CIFAR #206

Closed
wants to merge 242 commits into from
Closed

Commits on Sep 18, 2019

  1. Initial commit

    fbshipit-source-id: b4001a6fb460b8b35bc862a5564fad55d86f5bc3
    facebook-github-bot committed Sep 18, 2019
    Configuration menu
    Copy the full SHA
    f72250f View commit details
    Browse the repository at this point in the history
  2. Add license file (#1)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#1
    
    Pull Request resolved: facebookresearch/ClassyVision#1
    
    We got approved for MIT license.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17453010
    
    fbshipit-source-id: d6b29db5c142b9a905e821864b8fc15597f134a6
    vreis authored and facebook-github-bot committed Sep 18, 2019
    Configuration menu
    Copy the full SHA
    3713365 View commit details
    Browse the repository at this point in the history
  3. Add contributing, readme and other template files

    Summary:
    Add template files usually available in our OSS releases. Will work on
    updating the content from them as we go.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17454683
    
    fbshipit-source-id: c8ea8f9b3a7f0746d73c1f2062114623d0fc2c88
    vreis authored and facebook-github-bot committed Sep 18, 2019
    Configuration menu
    Copy the full SHA
    454a295 View commit details
    Browse the repository at this point in the history
  4. Add multi_output_sum_loss criterion

    Summary:
    Created a `multi_output_sum_loss`. It takes a registered loss's config as input and applies it to all the outputs. See the associated test for usage.
    
    This loss is supposed to replace the "sum" functionality of `sum_bce_with_logits_loss` and `sum_cross_entropy_loss` so that we don't have code duplication. The updates to these two losses will happen in a follow up diff.
    
    Reviewed By: aadcock, vreis
    
    Differential Revision: D17438898
    
    fbshipit-source-id: 20434cfc340a29a5058b2fdd51f067aa77cb82c9
    mannatsingh authored and facebook-github-bot committed Sep 18, 2019
    Configuration menu
    Copy the full SHA
    1455f44 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2019

  1. Support building losses from torch

    Summary:
    `build_criterion` now searches for a criterion in `torch.nn.modules.loss` if it is not found in the registry. This is similar to the logic used for transforms.
    - We don't need `sum_bce_with_logits`, `sum_cross_entropy` anymore - users can use `BCEWithLogitsLoss` and `CrossEntropyLoss` in combination with `multi_output_sum_loss` (D17438898) to get the same functionality
    - There was a bug wherein passing `weights` wouldn't work to the losses since `weights` is expected to be a tensor, not a list. `weights` is now updated to a tensor inside `build_criterion`
    - `criterions_test.py` is no longer a misnomer - it tests that `build_criterion` can build a criterion from torch correctly
    - Changed `sum_cross_entropy` to `CrossEntropyLoss` in all the configs I found using fbgs
    
    Reviewed By: aadcock, vreis
    
    Differential Revision: D17439082
    
    fbshipit-source-id: b075fdbdbbc879a04fea397628385fdb0a3af5a1
    mannatsingh authored and facebook-github-bot committed Sep 19, 2019
    Configuration menu
    Copy the full SHA
    dad3945 View commit details
    Browse the repository at this point in the history
  2. Update koski datasets to use DataloaderLimitWrapper

    Summary:
    Use `DataloaderLimitWrapper` in the koski on box datasets as well (`on_box_uru` and `multimodal_video`)
    - Instead of having Koski apply a limit, the wrapper does that for us. This will make sure we wrap around if one of the instances runs out of samples before others and the code will not stay hung
    - `ClassyState.num_batches_per_phase` doesn't have a special branch for these datasets anymore
    - The datasets use `num_samples` instead of `max_samples` like the other streaming datasets
    - Updated `DataloaderLimitWrapper` to pass all `getattr` / `setattr` calls to the wrapped data loader
    - Got rid of all the unused special methods in the datasets to simplify the code
    
    Reviewed By: aadcock
    
    Differential Revision: D17372111
    
    fbshipit-source-id: d3e3a634eb20eb82db3dc587fab576c5cc596d30
    mannatsingh authored and facebook-github-bot committed Sep 19, 2019
    Configuration menu
    Copy the full SHA
    47faf36 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2019

  1. Add setup.py (#2)

    Summary:
    Add basic support for packaging the project. This will be used to run ours tests with pip as well.
    Pull Request resolved: facebookresearch/ClassyVision#2
    
    Test Plan: python3 setup.py sdist bdist_wheel
    
    Differential Revision: D17490325
    
    Pulled By: vreis
    
    fbshipit-source-id: a3fe2a4cfe8b943bfc0922b1ad1eb2daa5802584
    vreis authored and facebook-github-bot committed Sep 20, 2019
    Configuration menu
    Copy the full SHA
    0ff6a28 View commit details
    Browse the repository at this point in the history
  2. Add CircleCI config (#3)

    Summary:
    Add a configuration file for CircleCI. Not all tests are passing yet, but I'll work on fixing that in follow-up diffs.
    Pull Request resolved: facebookresearch/ClassyVision#3
    
    Differential Revision: D17494024
    
    Pulled By: vreis
    
    fbshipit-source-id: 53951f3e853c0c4ca48d3301ec9064142674f9f1
    vreis authored and facebook-github-bot committed Sep 20, 2019
    Configuration menu
    Copy the full SHA
    86b0193 View commit details
    Browse the repository at this point in the history
  3. Add copyright headers (#4)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#4
    
    Needed for the OSS release
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17504533
    
    fbshipit-source-id: ea2d9c9579623bc8776f89493aaaad2542351802
    vreis authored and facebook-github-bot committed Sep 20, 2019
    Configuration menu
    Copy the full SHA
    648266b View commit details
    Browse the repository at this point in the history
  4. More copyright headers (#6)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#6
    
    I missed the test directory and files in the root directory :(
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17507489
    
    fbshipit-source-id: 0564ffa81df35443f89422fe1813d68c8682652a
    vreis authored and facebook-github-bot committed Sep 20, 2019
    Configuration menu
    Copy the full SHA
    8509e03 View commit details
    Browse the repository at this point in the history
  5. Fix bug in dataloader limit usage

    Summary:
    In D17349805 we had introduced `DataloaderLimitWrapper`, but I forgot to scale the limit by the world size.
    
    - Added a comment about `getattr` in the `Dataset` class (it's easy to miss that there's a `__getattr__` defined which passes on the search to `self.dataset`)
    - Added `get_batchsize_per_replica()` and `get_global_batchsize()` to  `ClassyDataset` and updated `ClassyState.get_batchsize_per_replica()` to use the dataset function
    - The `multimodal_video` dataset used inconsistent names for the batch size in the config and in the class which has been fixed
    
    Reviewed By: vreis
    
    Differential Revision: D17481832
    
    fbshipit-source-id: 5642799d3b708cc0aa58d9b0279cb49590b01e88
    mannatsingh authored and facebook-github-bot committed Sep 20, 2019
    Configuration menu
    Copy the full SHA
    03a728d View commit details
    Browse the repository at this point in the history
  6. add is_pos_int_list()

    Summary: add an utility function `is_pos_int_list`
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17496207
    
    fbshipit-source-id: 8c3e22e290fc85728208bca55dd0b1cbe0aa29c1
    stephenyan1231 authored and facebook-github-bot committed Sep 20, 2019
    Configuration menu
    Copy the full SHA
    2263929 View commit details
    Browse the repository at this point in the history
  7. hooks import code mod

    Reviewed By: vreis
    
    Differential Revision: D17472655
    
    fbshipit-source-id: 087f2a3a7e66efa76723109eb41097c13ea8ef1b
    jguerin-fb authored and facebook-github-bot committed Sep 20, 2019
    Configuration menu
    Copy the full SHA
    69a37c2 View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2019

  1. Fix tests on CircleCI (#5)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#5
    
    Three fixes:
    1) Some tests require external dependencies (progressbar, visdom, tensorboard).
    For now let's just test them on the FB environment.
    
    2) Some tests had a wrong relative imports (.generic);
    
    3) One test was checking the exact package name of the test class. That's
    pretty fragile and I don't see the need for it.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17506164
    
    fbshipit-source-id: 4e35a4c3860321d778434049cc03c28fe30e0c2d
    vreis authored and facebook-github-bot committed Sep 21, 2019
    Configuration menu
    Copy the full SHA
    90b8a2e View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2019

  1. Move __init__.py (#7)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#7
    
    While moving everything to the classy_vision module I missed this file. It
    doesn't make sense to have it in the root directory, move it where it belongs.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17515540
    
    fbshipit-source-id: b33ae5a04d199cbddb64838dd071ae383090d8bc
    vreis authored and facebook-github-bot committed Sep 23, 2019
    Configuration menu
    Copy the full SHA
    5005b32 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2019

  1. Keep dataloaders, model, meters as members of ClassyTask (#8)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#8
    
    This will make more sense after you review D17515697: I'm hiding ClassyState
    from the public API, but in some cases we access state.optimizer, state.model
    etc. This diff adds these members to ClassyTask so it can replace the state.
    Eventually I want to move these from the state to the task, but for now we
    need them in both.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17515732
    
    fbshipit-source-id: e00820cf608dfc86a658e293e8446b6ae10b36a0
    vreis authored and facebook-github-bot committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    3ced20d View commit details
    Browse the repository at this point in the history
  2. Refactor trainer API (#9)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#9
    
    Move things around a bit more to get closer to our goal. Introduce a
    ClassyTrainer.train method, which only takes a task in. The state is hidden
    from the public API that way. Other parameters are passed in the constructor
    instead.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17515697
    
    fbshipit-source-id: 1d4163f1c49a0a29c5bbf8fc01eda88e810dbed3
    vreis authored and facebook-github-bot committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    5863422 View commit details
    Browse the repository at this point in the history
  3. Rename optimizer_config to parameters (#10)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#10
    
    The name "optimizer_config" is confusing since it does not come from the
    config used to build the optimizer. I think parameters makes that purpose
    more clear.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17517990
    
    fbshipit-source-id: f2906668a9ea571bc00497b5f898d14755066bd8
    vreis authored and facebook-github-bot committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    7a3d731 View commit details
    Browse the repository at this point in the history
  4. Switch to from_config for param schedulers (#11)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#11
    
    We want to be able to instantiate classy abstractions without a configuration
    file. Instead of taking a config in the constructor for the param schedulers,
    make a static method to instantiate a scheduler from a config.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17518149
    
    fbshipit-source-id: 84f8f0d4cf4fe0249c14895debf4d93d9b35b5ec
    vreis authored and facebook-github-bot committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    8d8038b View commit details
    Browse the repository at this point in the history
  5. Switch criterions to .from_config idiom (#12)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#12
    
    Create a .from_config method to instantiate a criterion from a configuration
    dictionary. That means we can have actual arguments in the constructors,
    instead of passing a single config blob.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17528154
    
    fbshipit-source-id: dd94002069d56c9933e3fb361a89b6ebcb6b9967
    vreis authored and facebook-github-bot committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    40429f3 View commit details
    Browse the repository at this point in the history
  6. Switch meters to .from_config idiom (#13)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#13
    
    Two changes:
    1) Create a .from_config method to instantiate a meter from a configuration
    dictionary.
    2) Change the build_meter API to be consistent with the other build_* APIs.
    That means taking a single config argument (instead of name, config);
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17531961
    
    fbshipit-source-id: 3e511615343061d7a06c1acce980c401d49c9553
    vreis authored and facebook-github-bot committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    64cb84c View commit details
    Browse the repository at this point in the history
  7. make ClassyElasticState.sync() NCCL compatible

    Summary: we need to transfer the tensors to GPU and back when using NCCL backend.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17473796
    
    fbshipit-source-id: d066aa79e32cb2c91927121e3e8049c53b15c4fb
    mehta-vikas authored and facebook-github-bot committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    0e8274b View commit details
    Browse the repository at this point in the history
  8. Remove local_rank parameter from ClassyTask (#15)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#15
    
    That is not being used AFAICT and it's polluting the API.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17547887
    
    fbshipit-source-id: c5ebde37932429801f7034635dd73ee85c16a292
    vreis authored and facebook-github-bot committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    a829687 View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2019

  1. Remove convex hull from PR curve utility (#17)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#17
    
    The compute approximate PR curve utility in classy vision was created for a mAP meter which pre-existed classy vision. Zheng wants to reimplement the mAP meter but he found that our PR curve was different from other definitions in SKLearn in that it computed the convex hull of the PR curve (which is fine if you are choosing a threshold but not the standard for mAP).
    
    This diff converts it to use the standard PR curve (i.e. no convex hull).
    
    Reviewed By: vreis, zhengshou
    
    Differential Revision: D17584834
    
    fbshipit-source-id: ca99ad257e82c5a0fc490d7cdec2d7ff0f5af1cd
    Aaron Adcock authored and facebook-github-bot committed Sep 26, 2019
    Configuration menu
    Copy the full SHA
    bcbf717 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2019

  1. Switch transforms to .from_config idiom (#18)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#18
    
    I was originally against a ClassyTransform abstraction, but I've come around.
    All other Classy things implement a from_config method, so we need a
    ClassyTransform as well. That gives us the flexibility of implementing
    transforms where the dictionary can't be mapped directly to arguments in the
    constructor.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17578366
    
    fbshipit-source-id: 7cd4addc7cba79054364939947bd34f3325efc02
    vreis authored and facebook-github-bot committed Sep 27, 2019
    Configuration menu
    Copy the full SHA
    48a8f25 View commit details
    Browse the repository at this point in the history
  2. Stop storing configs in datasets (#21)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#21
    
    In preparation to switch datasets to a .from_config constructor, make sure no
    datasets store the config itself as a member of the class. This makes things
    easier later.
    
    Reviewed By: aadcock
    
    Differential Revision: D17578858
    
    fbshipit-source-id: 33137eee8b90e47b0bcd2a0d060ae24e927087cb
    vreis authored and facebook-github-bot committed Sep 27, 2019
    Configuration menu
    Copy the full SHA
    1d75e08 View commit details
    Browse the repository at this point in the history
  3. Set small_input attribute in Densenet (#22)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#22
    
    `DenseNet.input_shape` calls `self.small_input`, which isn't defined currently.
    
    Reviewed By: vreis
    
    Differential Revision: D17628854
    
    fbshipit-source-id: fff8b4e138ea68b2dc50ac60572dadc60b935ce2
    mannatsingh authored and facebook-github-bot committed Sep 27, 2019
    Configuration menu
    Copy the full SHA
    5459c01 View commit details
    Browse the repository at this point in the history
  4. Implement fine-tuning and create tests (#20)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#20
    
    Implemented fine-tuning for loading state from checkpoint state and tests for it
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17481209
    
    fbshipit-source-id: 288e597f42453afd7a50ebf5e4d0508402b8ee69
    simran2905 authored and facebook-github-bot committed Sep 27, 2019
    Configuration menu
    Copy the full SHA
    c5d91f0 View commit details
    Browse the repository at this point in the history

Commits on Sep 28, 2019

  1. Make Everstore match existing dataset API (#23)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#23
    
    Pull Request resolved: facebookresearch/ClassyVision#16
    
    Pull Request resolved: fairinternal/ClassyVision#2
    
    As I tried to work on the downstream diffs some of the internal datasets which have sample fetch failures had a different API and this was causing me headaches. In particular, most of the dataset API is reimplemented for the everstore dataset (particularly the batching and transformation logic). This made the downstream work to refactor and ultimately delete this logic twice as complicated since I effectively had to do it twice (one for canonical datasets and once for the everstore datasets).
    
    This diff migrates the API for those datasets to fetch single samples and use the dataset wrappers like all of the other Classy datasets (so future migrations happen only once). This has performance implications since the original goal of separate batching logic was to issue multiple everstore requests simultaneously, so I also had to make a change to prefetch the upcoming samples to make sure performance was still good.
    
    This involved:
    
    1. Everstore batching / transformation logic dealt with missing samples (None's), so I had to move some of that logic to the "is_not_none" filter function and add a ignore none's option to the transforms.
    2. Modifying all downstream datasets (e.g. the visual relevance team's datasets, also made max_samples -> num_samples to match all other datasets)
    3. Adding prefetching to the Everstore dataset for performance.
    4. Found some small CLI changes to the internal benchmark to make it easier to use by displaying samples when needed.
    
    I then verified that performance was fine. The performance turned out to be faster than I measured on the previous benchmark, I'm still not sure why this is, but I added functionality to the benchmark to print out a tensor for visual inspection and the data appears to be fine.
    
    As a note, I was trying to figure out if we can switch to spawn here and ran into a host of problems which was what was blocking this work, so I will save that for a later diff.
    
    Reviewed By: vreis
    
    Differential Revision: D17266435
    
    fbshipit-source-id: 337e8dcd4558d58fc28c5c47f99ff681addccc8b
    Aaron Adcock authored and facebook-github-bot committed Sep 28, 2019
    Configuration menu
    Copy the full SHA
    afa95d6 View commit details
    Browse the repository at this point in the history
  2. Remove criterion from ClassyTask constructor (#25)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#25
    
    Remove criterion_config from ClassyTask constructor. Instead, use a set_criterion method
    and instantiate the criterion from the config. This looks weird now cause I haven't migrated
    the other modules, but eventually ClassyTask will take no arguments in the constructor and
    this will look like n128788. It needs to get worse before it gets better though.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17581037
    
    fbshipit-source-id: 87c6ae9b07f3cf03b71180e0fcd56b660036948d
    vreis authored and facebook-github-bot committed Sep 28, 2019
    Configuration menu
    Copy the full SHA
    760a83c View commit details
    Browse the repository at this point in the history
  3. Fix Head Imports (#27)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#27
    
    Fixed classy vision head imports
    
    Reviewed By: vreis
    
    Differential Revision: D17635517
    
    fbshipit-source-id: 0dd0eb73bb3d03cd442de35ba893d78a7a9180d5
    simran2905 authored and facebook-github-bot committed Sep 28, 2019
    Configuration menu
    Copy the full SHA
    64f7846 View commit details
    Browse the repository at this point in the history

Commits on Sep 30, 2019

  1. Improve imports for criterions (#24)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#24
    
    Import all the criterions in `__init__.py` and add them to `__all__`
    
    Removed `import_all_modules` since it is not needed anyway and can cause people to forget importing future modules.
    
    Reviewed By: vreis
    
    Differential Revision: D17632979
    
    fbshipit-source-id: 7a6c9dcb0d53d86f8f339b547e7859f88be60515
    mannatsingh authored and facebook-github-bot committed Sep 30, 2019
    Configuration menu
    Copy the full SHA
    cb61591 View commit details
    Browse the repository at this point in the history
  2. Fix imports in transforms (#26)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#26
    
    Import `LightingTransform` in `__init__.py`
    
    Reviewed By: vreis
    
    Differential Revision: D17634829
    
    fbshipit-source-id: ce5999255c850789260c03c3f51049c9a0d19ed2
    mannatsingh authored and facebook-github-bot committed Sep 30, 2019
    Configuration menu
    Copy the full SHA
    c194872 View commit details
    Browse the repository at this point in the history
  3. Remove num_workers and pin_memory from ClassyTask constructor (#28)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#28
    
    pin_memory is a setting that only makes sense when training on GPUs. So move
    that to build_initial_state which happens to get called whenever a Trainer is
    instantiated (the Trainer keeps track of whether to use gpu).
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17658720
    
    fbshipit-source-id: 2d2cab315532253bf36a38f8d0e03a5a46e0aef7
    vreis authored and facebook-github-bot committed Sep 30, 2019
    Configuration menu
    Copy the full SHA
    90460b0 View commit details
    Browse the repository at this point in the history
  4. Remove device_type from ClassyTask (#29)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#29
    
    ClassyTrainer decides whether to train on the GPU or not. Remove device_type from ClassyTask
    now that it exists in the trainer.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17636861
    
    fbshipit-source-id: 78b25e940ed5a2cfbb9c43902b7c0b98f7fba2c4
    vreis authored and facebook-github-bot committed Sep 30, 2019
    Configuration menu
    Copy the full SHA
    070d63d View commit details
    Browse the repository at this point in the history
  5. Plot meters to tensorboard (#30)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#30
    
    Renamed `LossLrTensorboardHook` to `TensorboardPlotHook` and plot the meters to tensorboard as well (apart from the loss and lr).
    
    Reviewed By: vreis
    
    Differential Revision: D17646340
    
    fbshipit-source-id: 32c8915d7bf4ae12ee39bd61be5246a04159a604
    mannatsingh authored and facebook-github-bot committed Sep 30, 2019
    Configuration menu
    Copy the full SHA
    37691b0 View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2019

  1. Remove test_only parameter from ClassyTask constructor (#32)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#32
    
    test_only is a feature rarely used. Instead of taking it in the constructor, set a default and create a
    setter method.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17659502
    
    fbshipit-source-id: 5a51c7c3c6490201a1e075897bb7913145808af8
    vreis authored and facebook-github-bot committed Oct 1, 2019
    Configuration menu
    Copy the full SHA
    967f437 View commit details
    Browse the repository at this point in the history
  2. Create DistributedTrainer (#31)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#31
    
    Create a DistributedTrainer class to take care of the initial setup of
    environment variables for distributed training. This greatly simplifies the
    code in classy_train.py, and moves us a bit closer to the vision in n128788
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17661068
    
    fbshipit-source-id: 5cdf966dc3f8d78db99c141441a988ce946e1f5d
    vreis authored and facebook-github-bot committed Oct 1, 2019
    Configuration menu
    Copy the full SHA
    750b447 View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2019

  1. Switch datasets to .from_config idiom (#34)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#34
    
    Datasets are not for the faint of heart. Unlike the other
    abstractions, I cannot do the migration to .from_config with a single diff.
    Instead, I'm adding a .from_config method that passes the config to the
    constructor. That way each class can be migrated on its own.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17689190
    
    fbshipit-source-id: 082d3dfa97954a8ae7548a84a06edc9d7c46c741
    vreis authored and facebook-github-bot committed Oct 2, 2019
    Configuration menu
    Copy the full SHA
    5398a4c View commit details
    Browse the repository at this point in the history
  2. Remove meters from ClassyTask constructor (#33)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#33
    
    Instead of taking the meters config in the constructor, store the meter
    instances themselves in ClassyTask. Meters can be added with an `add_meter`
    method.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17659504
    
    fbshipit-source-id: 08d6113802a1e4a21b84e21a3aed1732277badc3
    vreis authored and facebook-github-bot committed Oct 2, 2019
    Configuration menu
    Copy the full SHA
    3761b8b View commit details
    Browse the repository at this point in the history
  3. api cleanup rename setup_task to build_task

    Summary: Pull Request resolved: facebookresearch/ClassyVision#36
    
    Reviewed By: kazhang
    
    Differential Revision: D17726216
    
    fbshipit-source-id: 374b839b333a45f6c9f59e39e04b29975bb6074a
    jguerin-fb authored and facebook-github-bot committed Oct 2, 2019
    Configuration menu
    Copy the full SHA
    b0f5d52 View commit details
    Browse the repository at this point in the history

Commits on Oct 4, 2019

  1. Add model tensorboard hook to fblearner (#39)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#39
    
    Changed the ModelTensorboardHook API to be the same as TensorboardPlotHook (they take summary writers as inputs). Plugged ModelTensorboardHook into the fblearner workflows. Since I was making the change anyway, added TensorboardPlotHook to all the local runs which I changed as well. Also, pyfakefs isn't a dependency anymore.
    
    Reviewed By: vreis
    
    Differential Revision: D17743822
    
    fbshipit-source-id: 56966cb0cca6d2cd291040f44084296f83d1c63a
    mannatsingh authored and facebook-github-bot committed Oct 4, 2019
    Configuration menu
    Copy the full SHA
    55be5e1 View commit details
    Browse the repository at this point in the history
  2. Create an image dataset to load local data (#37)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#37
    
    Implemented an `ImageDataset` in `dataset/generic` and added an `__init__.py` file. The dataset creates a classy dataset using images from local paths. Look at the docstring for more information. This will be used by the torchhub interface in the following diff.
    
    Ideally, there should have been a class/function which returned a class object, and the returned class would expect the config as an input. But that would mean the class wouldn't be serializable. This is a bit of a compromise - the class takes all the args along with the config in `__init__`. The non-config args are named so that we can apply partial to them in the future - the returned object would just then take the config as an argument.
    
    Please let me know if you have any suggestions to improve the interface!
    
    Reviewed By: vreis
    
    Differential Revision: D17728549
    
    fbshipit-source-id: 47828d8321c34f7ef1aeeee67ac255e10b021217
    mannatsingh authored and facebook-github-bot committed Oct 4, 2019
    Configuration menu
    Copy the full SHA
    6e5b488 View commit details
    Browse the repository at this point in the history
  3. Implement a ClassyHubInterface class (#38)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#38
    
    Implemented a `ClassyHubInterface` class. To see its usage look at the associated test. This is a first version and will need further improvements. I wanted to get feedback on the API to make sure it makes sense.
    
    Added an `extract_features` method to `ClassyVisionModel`, which defaults to `forward`.
    
    Note that transforms aren't picked up from self.task's datasets, but from the task's config. This means that a dataset's default transform will not be picked up. Added a TODO for this.
    
    Reviewed By: vreis
    
    Differential Revision: D17729140
    
    fbshipit-source-id: 1dd8dfcfbb95cd57873f460b42a01d4cf8adeec0
    mannatsingh authored and facebook-github-bot committed Oct 4, 2019
    Configuration menu
    Copy the full SHA
    a6aaf5b View commit details
    Browse the repository at this point in the history

Commits on Oct 5, 2019

  1. Classy model wrapper (#42)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#42
    
    Created a `ClassyModelWrapper` which wraps an `nn.Module` by a `ClassyVisionModel`, so that the model can be used in Classy Vision.
    
    This wrapper is used in `ClassyHubInterface` so that `from_model()` can support any general models.
    
    Reviewed By: vreis
    
    Differential Revision: D17767522
    
    fbshipit-source-id: c80d7a0ee5523b313491a8c3e158ce49c348c5f3
    mannatsingh authored and facebook-github-bot committed Oct 5, 2019
    Configuration menu
    Copy the full SHA
    0068ff5 View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2019

  1. ProdResNeXt model to support dict input

    Summary: Pull Request resolved: facebookresearch/ClassyVision#35
    
    Reviewed By: vreis
    
    Differential Revision: D17708861
    
    fbshipit-source-id: 8c9579de7af35efb63c2be7eca6e37b57ce90e48
    kazhang authored and facebook-github-bot committed Oct 6, 2019
    Configuration menu
    Copy the full SHA
    29f31df View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2019

  1. Move FullyConnectedLayer from resnext into classy_vision/heads (#41)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#41
    
    1. Moved FC head from resnext.py to classy_vision/heads
    2. Changed corresponding imports
    3. Changed head name to "fully_connected" and corresponding json files
    
    Reviewed By: mannatsingh, vreis
    
    Differential Revision: D17730080
    
    fbshipit-source-id: d346fdf59e3fc0aa2338efcb12c2c0c35337cd9e
    simran2905 authored and facebook-github-bot committed Oct 7, 2019
    Configuration menu
    Copy the full SHA
    044ec92 View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2019

  1. Add support to save and load state in classy hooks

    Summary:
    Added support to store state within the hooks. Using the functions names `load_state_dict` and `state_dict` - we will be updating all the state functions to have these names.
    
    This will be followed by a diff to migrate the hooks to `ClassyState`, so that hooks can resume from checkpoints. This will also allow the hooks to work seamlessly with PET.
    
    Reviewed By: aadcock
    
    Differential Revision: D17772753
    
    fbshipit-source-id: 01967e7028a8d0558f285de8d42943699a31dd4e
    mannatsingh authored and facebook-github-bot committed Oct 9, 2019
    Configuration menu
    Copy the full SHA
    da83b00 View commit details
    Browse the repository at this point in the history
  2. Move classy hooks to classy state (#44)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#44
    
    Moved hooks to `ClassyState` - this means that the hooks' state can be checkpointed and synced (PET). Also moved the `run_hooks` function inside the state. The repetition of the `set_hooks` function in the task and the state is only there temporarily until the task absorbs the state.
    
    Reviewed By: aadcock
    
    Differential Revision: D17795516
    
    fbshipit-source-id: 2cef4a0a8fed805a21370d0c5a9fb7db24565972
    mannatsingh authored and facebook-github-bot committed Oct 9, 2019
    Configuration menu
    Copy the full SHA
    4ae3b4b View commit details
    Browse the repository at this point in the history
  3. Move heads to .from_config idiom (#45)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#45
    
    Pull Request resolved: facebookresearch/ClassyVision#40
    
    Instead of forcing heads to take a config in the constructor, change ClassyHead
    to use the .from_config idiom.
    
    Reviewed By: aadcock
    
    Differential Revision: D17723558
    
    fbshipit-source-id: 2a3a3670a55355fde6c496eb9d149f81e3bd1544
    mannatsingh authored and facebook-github-bot committed Oct 9, 2019
    Configuration menu
    Copy the full SHA
    67414b5 View commit details
    Browse the repository at this point in the history
  4. Added argument for log freq and set default to 5. (#46)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#46
    
    Added argument for log freq and set default to 5. It is very confusing that there is no output by default.
    
    Reviewed By: aadcock
    
    Differential Revision: D17812560
    
    fbshipit-source-id: 93f057148140a0aae79869d94c5e05d8f569d431
    newstzpz authored and facebook-github-bot committed Oct 9, 2019
    Configuration menu
    Copy the full SHA
    58e6ed5 View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2019

  1. Move to PyTorch Dataloader for OSS (#49)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#49
    
    This removes the Classy Dataloaders from the OSS code.
    
    THe classy dataloaders are still used by the everstore datasets (planned to be deprecated), so I moved the associated files to the fb/datasets folder and verified the tests. I will delete them in a later diff.
    
    All unittests pass and the run I kicked off yesterday trained well.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17842785
    
    fbshipit-source-id: 82661d4a51965f6d268b6ba54188e74b0f317b7a
    Aaron Adcock authored and facebook-github-bot committed Oct 10, 2019
    Configuration menu
    Copy the full SHA
    d0ba27e View commit details
    Browse the repository at this point in the history
  2. Fix bug in checkpoint loading (#50)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#50
    
    D17481209 updated `update_classy_state` to support fine tuning, but introduced a bug wherein we only loaded the model state from the checkpoint instead of the whole state. It wasn't caught because the test which was added only compared the model state and not the whole state.
    
    Reviewed By: aadcock
    
    Differential Revision: D17855725
    
    fbshipit-source-id: a85e85a8be0000fa6e33019c03b2229b101e6568
    mannatsingh authored and facebook-github-bot committed Oct 10, 2019
    Configuration menu
    Copy the full SHA
    e8cbf9f View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2019

  1. Remove model and optimizer from ClassyTask constructor (#48)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#48
    
    Instead of taking the model and optimizer config in the constructor, store the model and optimizer
    instances themselves in ClassyTask. These can be set using the `set_model` and `set_optimizer` methods.
    
    Also, moved `rest_heads` to the task config instead of the `model_config`.
    
    Updated the name of the config variable from `model_config` to `config` in `build_model` since it is obvious from the context.
    
    Reviewed By: aadcock
    
    Differential Revision: D17770367
    
    fbshipit-source-id: af10ef6507cd5ef6df32fd0aa5bd95bb9f309747
    mannatsingh authored and facebook-github-bot committed Oct 11, 2019
    Configuration menu
    Copy the full SHA
    bc6109f View commit details
    Browse the repository at this point in the history
  2. Build phases inside build_initial_state (#52)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#52
    
    Need this so that phases aren't built before `set_test_only()` is called.
    
    Reviewed By: aadcock
    
    Differential Revision: D17880326
    
    fbshipit-source-id: e3d8b49e9c79dcd111337f54c10d8b1847032bc6
    mannatsingh authored and facebook-github-bot committed Oct 11, 2019
    Configuration menu
    Copy the full SHA
    64bec06 View commit details
    Browse the repository at this point in the history
  3. Take kwargs in Classy Datasets (#51)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#51
    
    Currently, for all datasets, the initialization happens through the config. This diff changes it so that all the datasets take kwargs instead. `ClassyDataset` now expects the following args to be provided during initialization - `split, batchsize_per_replica, shuffle, transform, num_samples`. Converted `parse_config` and `wrap_dataset` to `classmethod`s (In a strict sense, they shoud be `staticmethod`s, but that conversion will do more harm than good).
    
    There are a lot of other things which need to be cleaned up in datasets, but this is a start!
    
    Reviewed By: aadcock
    
    Differential Revision: D17869562
    
    fbshipit-source-id: d69219795df7d12169c6ea22e2b05e68941a609d
    mannatsingh authored and facebook-github-bot committed Oct 11, 2019
    Configuration menu
    Copy the full SHA
    40d6d4c View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2019

  1. support group size in ShardDataset (#54)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#54
    
    For video model evaluation, we sample N clips from a video, and average clip predictions to get a video-level prediction.
    Assume, we sample 2 clips per video. The test dataset, which has 4 videos {A,B,C,D} is illustrated below.
    
        [A_0, A_1, B_0, B_1, C_0, C_1, D_0, D_1]
    
    Assume we have 2 gpus. The existing ShardDataset will distribute clips from the same video to different gpus, and make it difficult to average clip predictions.
        GPU 0: [A_0, B_0, C_0, D_0]
        GPU 1: [A_1, B_1, C_1, D_1]
    
    This is called Stride Shading.
    
    We extend ShardDataset to support Sequential Sharding, which will shard clips below.
        GPU 0: [A_0, A_1, B_0, B_1]
        GPU 1: [C_0, C_1, D_0, D_1]
    
    This facilitates the averaging of clip predictions.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17662575
    
    fbshipit-source-id: 1639e9b98a6147a0a19399d6de764f1566852a08
    stephenyan1231 authored and facebook-github-bot committed Oct 14, 2019
    Configuration menu
    Copy the full SHA
    76df9b4 View commit details
    Browse the repository at this point in the history
  2. Switch to .from_config for models (#47)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#47
    
    Instead of taking the config in the models' constructor, added a `from_config` classmethod. All the OSS models don't take the config as an arg in their `__init__`s.
    
    Reviewed By: aadcock
    
    Differential Revision: D17724370
    
    fbshipit-source-id: fc1317a4fd78509953f15e7800ed2cc1835ca854
    mannatsingh authored and facebook-github-bot committed Oct 14, 2019
    Configuration menu
    Copy the full SHA
    043c514 View commit details
    Browse the repository at this point in the history
  3. Remove datasets from the ClassyTask constructor

    Summary:
    Instead of taking the dataset config in the constructor, store the dataset instances in ClassyTask. A dataset for a split can be set using the `set_dataset` method.
    
    Since tasks can be built without config files, datasets can be provided using `task.set_dataset()`. `ClassyElasticState` used to call `task.rebuild_datasets()` to re-shard the datasets properly. I had to disable this code since we won't have access to the config to re-build the datasets. This is only needed when CV starts using elasticity with PET. Created a task for it - T55691442.
    
    Reviewed By: vreis
    
    Differential Revision: D17880629
    
    fbshipit-source-id: b02213139414b6ccca98f93e1063278c7b89ac78
    mannatsingh authored and facebook-github-bot committed Oct 14, 2019
    Configuration menu
    Copy the full SHA
    9cf2250 View commit details
    Browse the repository at this point in the history
  4. ResNeXt3DStem (#55)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#55
    
    Build `ResNeXt3DStem` as a thin wrapper on top of `VideoModelStem` class from SF codebase.
    
    Reviewed By: takatosp1
    
    Differential Revision: D17542967
    
    fbshipit-source-id: d5c612c3f62c3c9edaca49074a100768538ab449
    stephenyan1231 authored and facebook-github-bot committed Oct 14, 2019
    Configuration menu
    Copy the full SHA
    1b64f26 View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2019

  1. basic block and bottleneck block for ResNeXt3D model (#56)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#56
    
    Implement `BasicTransformation` and `BottleneckTransformation` for ResNeXt3D family models by sharing implementation from SF codebase.
    
    Reviewed By: takatosp1
    
    Differential Revision: D17543143
    
    fbshipit-source-id: 82c9855bd3970712e6fe9333c818aef938d8855d
    stephenyan1231 authored and facebook-github-bot committed Oct 15, 2019
    Configuration menu
    Copy the full SHA
    8d47bca View commit details
    Browse the repository at this point in the history
  2. ResNeXt3D model (#58)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#58
    
    Implement ResNeXt3D model on top of SlowFast codebase.
    
    Reviewed By: takatosp1
    
    Differential Revision: D17311655
    
    fbshipit-source-id: ee8229be0bb6eba8445c63eba6f4bed1412634ba
    stephenyan1231 authored and facebook-github-bot committed Oct 15, 2019
    Configuration menu
    Copy the full SHA
    673ff73 View commit details
    Browse the repository at this point in the history
  3. extend CosineDecayParamScheduler to support warmup (#59)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#59
    
    Warmup is also useful for cosine learning rate scheduling. We extend existing `CosineDecayParamScheduler` to support it.
    
    Reviewed By: vreis
    
    Differential Revision: D17899790
    
    fbshipit-source-id: 82aa8687984a8159b716151ccb5b5b737b23b606
    stephenyan1231 authored and facebook-github-bot committed Oct 15, 2019
    Configuration menu
    Copy the full SHA
    e535aa9 View commit details
    Browse the repository at this point in the history
  4. extend profiler and visualizer to support dict-type input in model fo…

    …rward method (#60)
    
    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#60
    
    In `forward` method of video models, we take input of data type dictionary where key is modality such as 'video' and `audio`.
    To support this, we extend profiler and `plot_model` to prepare dictionary input as needed.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17770657
    
    fbshipit-source-id: 723f164f5359a60b9208689d7a8545b8f9909287
    stephenyan1231 authored and facebook-github-bot committed Oct 15, 2019
    Configuration menu
    Copy the full SHA
    8a6afeb View commit details
    Browse the repository at this point in the history
  5. Pick up the correct transform in the hub interface (#57)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#57
    
    Now that a dataset's `transform` is part of the `ClassyDataset` API, we can pick up the correct transform in `ClassyHubInterface().create_image_dataset()`.
    
    Reviewed By: vreis
    
    Differential Revision: D17912094
    
    fbshipit-source-id: c8f13d6b957198eba816bbfdeed08d5d6fdbfae5
    mannatsingh authored and facebook-github-bot committed Oct 15, 2019
    Configuration menu
    Copy the full SHA
    68906b4 View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2019

  1. use nightly torchvision and torch 1.3 (#62)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#62
    
    Current dependency torchvision 0.4.0 was released in August.
    It missed quite a few PRs that are merged after that, and that are needed for video classification, such as
    
    - pytorch/vision#1437
    - pytorch/vision#1431
    - pytorch/vision#1423
    - pytorch/vision#1418
    - pytorch/vision#1408
    - pytorch/vision#1376
    - pytorch/vision#1363
    - pytorch/vision#1353
    - pytorch/vision#1303
    
    This will fail the CI test when a diff uses changes made in those PRs.
    Before a new official version of TorchVision is released, we can temporarily use the nightly torchvision to get all the recent PRs, and unblock the PR merging.
    We plan to use a fixed version of TorchVision later.
    
    Reviewed By: vreis
    
    Differential Revision: D17944239
    
    fbshipit-source-id: 86ff540e3fc4f08ef767e84ef103525db5158201
    stephenyan1231 authored and facebook-github-bot committed Oct 16, 2019
    Configuration menu
    Copy the full SHA
    125024a View commit details
    Browse the repository at this point in the history
  2. fix CsvFbDataset class

    Summary:
    Changes
    - `CsvFbDataset` represents image classification dataset stored in csv file.
    - `CsvFbDataset` is broken by previous diffs. Fix it in this diff
    -  Fix a bug In `EverstoreDataset`. It always tried to fetch the 1st sample. This is not correct when meaningful world_size and rank is provided.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17772040
    
    fbshipit-source-id: 48762da9e6539c1ded1aa9c8ed96bfc5f6830e37
    stephenyan1231 authored and facebook-github-bot committed Oct 16, 2019
    Configuration menu
    Copy the full SHA
    c31f155 View commit details
    Browse the repository at this point in the history
  3. use torchvision 0.4.1 (#64)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#64
    
    In D17944239, we try to get a more recent version of Torchvision by pip installing from nightly page.
    After a close look, we find for linux platform, we can only get version `0.4.1`.
    We can achieve this by noting `torchvision==0.4.1` in the `requirements.txt` file.
    Thus, we don't need to use nightly page.
    
    Reviewed By: simran2905
    
    Differential Revision: D17949130
    
    fbshipit-source-id: b6092bff39ab6d903d4b69583037b7463bed094b
    stephenyan1231 authored and facebook-github-bot committed Oct 16, 2019
    Configuration menu
    Copy the full SHA
    82a533c View commit details
    Browse the repository at this point in the history
  4. use nightly torchvision 0.5.0 (#65)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#65
    
    The latest torchvision version `0.5.0` is recently uploaded to nightly page, and supports all linux, osx and win platforms.
    
    Upgrade ClassyVision to use nightly version and get access to many new features that are needed for video classification.
    
    Reviewed By: vreis
    
    Differential Revision: D17964239
    
    fbshipit-source-id: 26a84ea0b3f930a4d8ccd49d56359bc5124d5b0c
    stephenyan1231 authored and facebook-github-bot committed Oct 16, 2019
    Configuration menu
    Copy the full SHA
    43b488f View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2019

  1. Clean up https://fwdproxy:8080 references.

    Summary: Correct Fwdproxy definition.
    
    Reviewed By: dddmello
    
    Differential Revision: D17917027
    
    fbshipit-source-id: 1026007f28851b3ec316f3230dce8c2d84d7b8cb
    jalopezsilva authored and facebook-github-bot committed Oct 17, 2019
    Configuration menu
    Copy the full SHA
    fb348b8 View commit details
    Browse the repository at this point in the history
  2. change hash key and force to update cache (#66)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#66
    
    TorchVision on CI hosts remains version `0.4.1` even we choose to use nightly version `0.5.0` in D17964239.
    The reason is the hash key of cache remains the same, and the cached TV installation is used.
    Change to hash key, and force to update cache to use TV `0.5.0`.
    
    Reviewed By: vreis
    
    Differential Revision: D17970613
    
    fbshipit-source-id: fb58bc0af85228ffc20f280238239c8eef9a1418
    stephenyan1231 authored and facebook-github-bot committed Oct 17, 2019
    Configuration menu
    Copy the full SHA
    1f8755f View commit details
    Browse the repository at this point in the history
  3. new video data augmentation transform (#53)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#53
    
    - We add video transforms in TorchVision: pytorch/vision#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
    
    fbshipit-source-id: 112b66a3965cba4201bbb12c99f3fdd2f1fce86f
    stephenyan1231 authored and facebook-github-bot committed Oct 17, 2019
    Configuration menu
    Copy the full SHA
    79c4194 View commit details
    Browse the repository at this point in the history
  4. Fix convert_to_one_hot using incorrect device

    Summary: `convert_to_one_hot()` takes a target tensor containing just the target index and returns a one hot tensor. It used to check if cuda was available to determine the device of the returned tensor. Instead, the returned tensor now uses the same device as the input tensor.
    
    Reviewed By: vreis
    
    Differential Revision: D17973726
    
    fbshipit-source-id: 23a63e8ae5f4c5f6c18a93eb8c67aa9a7623ef3e
    mannatsingh authored and facebook-github-bot committed Oct 17, 2019
    Configuration menu
    Copy the full SHA
    5a6b14e View commit details
    Browse the repository at this point in the history
  5. Merge ClassyState and ClassyTask (#67)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#67
    
    There has never been a clear distiction between ClassyState and ClassyTask.
    Merge the two abstractions to simplify things. Please note we still keep the
    ClassyElasticState, since that's an abstraction required by PET.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17922207
    
    fbshipit-source-id: b04378abb9759c5ebe79b25eae625c8093053a9b
    vreis authored and facebook-github-bot committed Oct 17, 2019
    Configuration menu
    Copy the full SHA
    b194898 View commit details
    Browse the repository at this point in the history
  6. new ClassyVideoDataset (#68)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#68
    
    Implement a new base class `ClassyVideoDataset`, which abstracts out common API for video datasets.
    
    Reviewed By: taylorgordon20
    
    Differential Revision: D17414112
    
    fbshipit-source-id: 13e2508293ab142353e9d152acaa1951504133cd
    stephenyan1231 authored and facebook-github-bot committed Oct 17, 2019
    Configuration menu
    Copy the full SHA
    27e1a2a View commit details
    Browse the repository at this point in the history
  7. set torchvision video backend

    Summary:
    TorchVision supports 2 types of video backend
    - pyav
    - video_reader
    
    `video_reader` is generally faster for video decoding but has dependency on ffmpeg.  However, it has ffmpeg dependency, and is hard to be automatically resolved in TorchVision release with prebuilt package.
    Therefore, by default, for OSS ClassyVision, we choose to use `pyav` backend.
    
    Reviewed By: taylorgordon20, kazhang
    
    Differential Revision: D17587685
    
    fbshipit-source-id: 29835e53dd17f741cb37fdaf48c44f91f6f11847
    stephenyan1231 authored and facebook-github-bot committed Oct 17, 2019
    Configuration menu
    Copy the full SHA
    444ae0a View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2019

  1. Initialize optimizer after moving model to gpu (#61)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#61
    
    Added a method - `init_pytorch_optimizer()` to `ClassyOptimizer`. Instead of initializing the pytorch optimizers in `__init__()`, they are initialized here. This is needed because we create the optimizer before moving the model to the gpu.
    
     `ClassyTask.build_initial_state()` now takes `use_gpu` as an arg, and copies the model and criterion to the gpu (if needed), and then calls `init_pytorch_optimizer()`.
    
    Reviewed By: vreis
    
    Differential Revision: D17936851
    
    fbshipit-source-id: 6306ca8b022fe9369af7a6a83e0d08dbe49c4d94
    mannatsingh authored and facebook-github-bot committed Oct 18, 2019
    Configuration menu
    Copy the full SHA
    9e0da45 View commit details
    Browse the repository at this point in the history
  2. Pass model to ClassyOptimizer in init_pytorch_optimizer (#70)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#70
    
    Since the pytorch optimizer isn't initialized in `__init__()`, `build_optimizer()` doesn't need to take the model as an argument. Instead, the model is passed in `build_initial_state()`.
    Tagged on a couple of small changes as well -
    Added `from_config` to the base `ClassyOptimizer` class. Also, initialize `self._optimizer` to `None` instead of checking for `hasattr()` since that is more natural.
    
    Reviewed By: vreis
    
    Differential Revision: D17964466
    
    fbshipit-source-id: fd0f2754db6ceb2b16e6ffd3d8bed1ca923feeb4
    mannatsingh authored and facebook-github-bot committed Oct 18, 2019
    Configuration menu
    Copy the full SHA
    ed4d00b View commit details
    Browse the repository at this point in the history
  3. Add hubconf.py and a wsl example (#72)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#72
    
    Added a simple `hubconf.py` file which creates an interface for the WSL models by downloading them from torchhub. Created an example notebook where we evaluate an image using one of these models. Note that the example cannot call torchhub right now since the repo isn't public right now, so I had to call the function manually, this will have to be fixed.
    
    Reviewed By: vreis
    
    Differential Revision: D17990569
    
    fbshipit-source-id: 8326200ddffd77f6d7205ace84e07d8a26dfa456
    mannatsingh authored and facebook-github-bot committed Oct 18, 2019
    Configuration menu
    Copy the full SHA
    b8d22f3 View commit details
    Browse the repository at this point in the history
  4. rename ClassyVisionTask to ClassyTask

    Summary: Pull Request resolved: facebookresearch/ClassyVision#78
    
    Reviewed By: vreis
    
    Differential Revision: D18018163
    
    fbshipit-source-id: 8542cd8d1162c2f5e7f9691b0a3ae3e50a4720fd
    jguerin-fb authored and facebook-github-bot committed Oct 18, 2019
    Configuration menu
    Copy the full SHA
    cda2eb0 View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2019

  1. rename ClassyVisionHead to ClassyHead

    Summary: Pull Request resolved: facebookresearch/ClassyVision#79
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18019618
    
    fbshipit-source-id: 9bb802e8ba3002b0ab4ccd1a4c944dab3d6b9466
    jguerin-fb authored and facebook-github-bot committed Oct 19, 2019
    Configuration menu
    Copy the full SHA
    7cb61e2 View commit details
    Browse the repository at this point in the history
  2. Remove reset_heads from ClassyVisionTask (#76)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#76
    
    Since we are creating a separate task for fine tuning, removing `reset_heads` as a parameter from `ClassyVisionTask`
    
    This is my plans for the diffs in this stack -
    - Remove reset_heads from base task
    - Refactor tests
    - Create a fine tuning task
    - Add support for this task in fblearner and actually run fine tuning in the test plan
    
    Reviewed By: vreis
    
    Differential Revision: D18007666
    
    fbshipit-source-id: c88d0f0dfc35d46886fec6b629fd96bcf8bd96f2
    mannatsingh authored and facebook-github-bot committed Oct 19, 2019
    Configuration menu
    Copy the full SHA
    9b72e12 View commit details
    Browse the repository at this point in the history
  3. Make manifold hook consistent with the checkpoint hook

    Summary:
    The Manifold checkpoint hook didn't checkpoint the input args / params. This diff makes it so that both the checkpoint hooks save the same data.
    
    Also, updated one of the integration tests to use the manifold hook so that we have better coverage.
    
    Reviewed By: vreis
    
    Differential Revision: D18013407
    
    fbshipit-source-id: 3d5533be4bfec6cbdf5f142bc99ea30d67954af1
    mannatsingh authored and facebook-github-bot committed Oct 19, 2019
    Configuration menu
    Copy the full SHA
    1587653 View commit details
    Browse the repository at this point in the history
  4. rename ClassyVisionModel to ClassyModel

    Summary: Pull Request resolved: facebookresearch/ClassyVision#80
    
    Reviewed By: vreis
    
    Differential Revision: D18020540
    
    fbshipit-source-id: 75a086597365ce00d01ccaabc394677d3bc30d3b
    jguerin-fb authored and facebook-github-bot committed Oct 19, 2019
    Configuration menu
    Copy the full SHA
    f55c5b3 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2019

  1. Move test for update_classy_state to the right test (#75)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#75
    
    Moved a test in `state_classy_state_test.py` which didn't actually test the state (we need to rename the test since state doesn't exist anymore, but that's not what I'm focusing on here). Changed the test to use the public trainer API instead of referring to internals. Also, factored out a common configuration and test so that it they be reused by multiple tests.
    
    Reviewed By: vreis
    
    Differential Revision: D18007698
    
    fbshipit-source-id: 91eeb08d6e59882254ecdf52a106d94966fd3704
    mannatsingh authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    0406893 View commit details
    Browse the repository at this point in the history
  2. Rename criterion to loss (#81)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#81
    
    Pull Request resolved: fairinternal/ClassyVision#3
    
    To be consistent with PyTorch, this diff renames `ClassyCriterion` into `ClassyLoss` and adapts the configuration file accordingly.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18029164
    
    fbshipit-source-id: 42b93ffa58a12741f0d8685edc9bccc628036e0b
    lvdmaaten authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    decd59a View commit details
    Browse the repository at this point in the history
  3. Make ClassyLoss extend a public class (#82)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#82
    
    Compared to `nn.Module`, the `nn.loss._WeightedLoss` only registers a `weight` buffer. As far as I can tell, none of the current `ClassyLoss`es use this `weight` buffer though. So I think extending the public `nn.Module` class should be fine.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18032147
    
    fbshipit-source-id: e86e0bb0b69020bdbcc1594cd0fa19b650b2a205
    lvdmaaten authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    09c8341 View commit details
    Browse the repository at this point in the history
  4. Isolate Everstore datasets and remove batch wrapper (#87)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#87
    
    This diff has the goal of removing the custom batching logic from the classy datasets and instead directly using the PyTorch DataLoader's batching logic.
    
    It became slightly more complicated because there are several blockers to migrating the EverstoreDatasets to the PyTorch DataLoaders (mainly backfilling logic and my attempts to serialize the EverstoreDataset have repeatedly run into issues).
    
    So, instead, I do the following:
    
    1. Isolate the EverstoreDataset with its own ClassyEverstoreDataset class. This class still uses the BatchDataset, etc. and the Classy Dataloader logic, etc. Goal is to migrate the custom code to the FB folder / isolate the usage in the EverstoreDatasets so that it can all be deleted once we migrate all users to Koski datasets.
    2. Move OSS batching to PyTorch Dataloader.
    
    At the end of this stack I want all dataset wrappers to be deleted or in the fb folder, the Dataset object will be deleted, and I will move the everstore functions to a folder marked as deprecated.
    
    NOTE: I'm aware I conflated two changes in this diff. I thought I had successfully isolated the everstore and then realized afterwards that I needed a separate class and it's a bit annoying to split the diff. That being said, I'm happy to split the diff if it's difficult to review.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17896229
    
    fbshipit-source-id: 8a3b99b63634e0e6ac9827121ac75cf387555aa6
    Aaron Adcock authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    bdff5bd View commit details
    Browse the repository at this point in the history
  5. Remove shard_dataset from OSS (#7)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#7
    
    Pull Request resolved: facebookresearch/ClassyVision#88
    
    Removing sharding logic from OSS folder. It still exists for the Everstore dataset since it is not yet compatible with OSS PyTorch loaders, but that dataset is going to be deprecated by end of stack.
    
    The sharding logic is replaced by the PyTorch distributed sampler. This sampler has two differences from previous logic which are:
    1. is that it silently replaces samples rather than marking them as dummy samples (so samples at the front of the dataset will get used slightly more often, should be fine if we shuffle regularly and is default behavior in the wild).
    2. It chunks data for each process, we previously used mod to distribute data. Should not affect things if shuffling is used.
    
    Reviewed By: mannatsingh, vreis
    
    Differential Revision: D17897080
    
    fbshipit-source-id: 4a7f3c7bc1754dd4554681482dd5265350b3ab93
    Aaron Adcock authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    89614b0 View commit details
    Browse the repository at this point in the history
  6. Remove resampling and shuffling (#89)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#89
    
    Replace custom shuffling / resampling logic with logic from OSS PyTorch samplers.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17897767
    
    fbshipit-source-id: 5e760888c70aa299c1feae2c40b16e6465cb4c2d
    Aaron Adcock authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    f2d8d74 View commit details
    Browse the repository at this point in the history
  7. Move transform logic into classy dataset (#90)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#90
    
    Pull Request resolved: fairinternal/ClassyVision#8
    
    Transform logic stays in the classy vision dataset, but we are no longer going to use it as a wrapper, just default logic the user can make use of in the classy_dataset wrapper.
    
    A lot of the work in this diff is reworking the tests which made heavy use of TransformDataset in various places and I ended up moving some of the logic from test/generic/utils.py to fb/test/generic/dataset_utils.py.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17907249
    
    fbshipit-source-id: fe5d625b7328b43607473d11aa14cc12c88a700a
    Aaron Adcock authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    9e3b58e View commit details
    Browse the repository at this point in the history
  8. Fix Tyrell datasets and tests (#5)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#5
    
    Pull Request resolved: facebookresearch/ClassyVision#83
    
    When removing the wrap dataset, I realized it is used quite a bit by the Tyrell datasets...I then realized that the Tyrell datasets were all broken but that the dataset tests hadn't been running for quite a while (at least a month).
    
    AFAIK the tyrell codebase hasn't been extensively used since Matthew has been out of the office, so I just fixed the datasets and made sure all of the tests pass locally on my devbox (I also added a couple of devbox only tests).
    
    The first three points below are the bulk of the changes
    
    Changes required:
    * Made the Tyrell datasets use explicit passes to classy dataset
    * Made use of the parse config call to make code reuse better
    * Removed unused functions that were added for matching classy API (simplified datasets)
    * Changed batchsize -> batchsize_per_replica
    * Changed the num_sample default in the classy_dataset parse config function to be None.
    * Tyrell overwrote the getitem function in classy dataset several times, this causes issues if we don't call the super first, so I updated this where necessary
    * Batching is owned by the dataloader now, so length checks that take into account batching must be on the dataloader.
    
    Reviewed By: vreis
    
    Differential Revision: D18033214
    
    fbshipit-source-id: 22689a16c79fade52f7d7eddc349ba2f3e6019d8
    Aaron Adcock authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    3f13fb5 View commit details
    Browse the repository at this point in the history
  9. Remove wrap_dataset and dataset (#84)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#84
    
    Pull Request resolved: fairinternal/ClassyVision#4
    
    Now that we have moved all of the functionality of the Dataset class to the classy_dataset class, the dataset.py file is no longer needed. We can also remove WrapDataset class and the assumption that it placed the samples into a dict (i.e. remove hardcoded calls on "input" from transforms like TupleToMapTransform class).
    
    Reviewed By: vreis
    
    Differential Revision: D17923631
    
    fbshipit-source-id: 545af877b7c0c1eada8418be76012b361ff13f05
    Aaron Adcock authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    70274f9 View commit details
    Browse the repository at this point in the history
  10. Remove wrap_dataset function from classy dataset (#85)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#85
    
    Pull Request resolved: fairinternal/ClassyVision#6
    
    The wrap_dataset function now does not do anything (it just returns the dataset passed in) as we have removed all of the wrappers from Classy Vision.
    
    In this diff we remove the wrap_dataset function from all places it is called (note, it still exists for the deprecated EverstoreDataset, but that's a different problem from what this stack is trying to solve and it only exists in the internal FB codebase).
    
    Reviewed By: mannatsingh, vreis
    
    Differential Revision: D17930161
    
    fbshipit-source-id: e7e303ca4a7b3f79068677a8ea8fd4c30c8612b2
    Aaron Adcock authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    b153bbf View commit details
    Browse the repository at this point in the history
  11. Initialize DenseNet linear bias to zero (#91)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#91
    
    Based on https://github.com/liuzhuang13/DenseNet/blob/master/models/densenet.lua#L161, initialize the linear bias to 0.
    
    Reviewed By: aadcock
    
    Differential Revision: D18039773
    
    fbshipit-source-id: 4a8790e83611be43cc558b9f576c46cf63ca6e67
    mannatsingh authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    2f9dddc View commit details
    Browse the repository at this point in the history
  12. Densenet weight decay on BN (#92)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#92
    
    Made it so that we apply weight decay on batch norm for DenseNets.
    
    Added an optional arg to `ClassyModel.get_optimizer_params()`, `bn_weight_decay` (default `False`), which models can change to enable weight decay on batch norm. I did not add an attribute in `self` during `__init__()` since this is only used once and I didn't want to add unnecessary properties to the base class.
    
    Reviewed By: aadcock
    
    Differential Revision: D18040246
    
    fbshipit-source-id: cd5824cf09df5de4fabc367e9485779517202b27
    mannatsingh authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    acea144 View commit details
    Browse the repository at this point in the history
  13. Move train_step to ClassyTask (#86)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#86
    
    Right now we have a single global training step. In order to support different
    use cases, move train_step to ClassyTask so that users can implement their own
    (by implementing a new task).
    
    Reviewed By: mannatsingh
    
    Differential Revision: D17974101
    
    fbshipit-source-id: c5ca8d3ffbdafeb0334adde26f2df55f5bdd0ef0
    vreis authored and facebook-github-bot committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    c43120b View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2019

  1. Improve diff coverage for classy dataset (#11)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#11
    
    Pull Request resolved: facebookresearch/ClassyVision#94
    
    Previous test just verified length of dataset was correct when num_samples is set.
    
    Now the test also verifies that the iterator length is as expected and that the number of samples retrieved is as expected.
    
    Reviewed By: vreis
    
    Differential Revision: D18054228
    
    fbshipit-source-id: b6e1763bf263b378faf93f699d433ca7155710f5
    Aaron Adcock authored and facebook-github-bot committed Oct 22, 2019
    Configuration menu
    Copy the full SHA
    0811e28 View commit details
    Browse the repository at this point in the history
  2. video accuracy meter (#95)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#95
    
    - For video classification, at test time, we evenly sample N clips from a video, and want to average clip-level predictions to get a video-level prediction. This diff implements a new meter to support video-level accuracy compute.
    - Fix a small bug in trainer where No. of processes should be from user argument ` nprocs=params.num_gpus_per_node`
    
    Reviewed By: takatosp1
    
    Differential Revision: D17996847
    
    fbshipit-source-id: 736e8215f69eb01a2c1a7859179279ddcc2ae919
    stephenyan1231 authored and facebook-github-bot committed Oct 22, 2019
    Configuration menu
    Copy the full SHA
    03741a8 View commit details
    Browse the repository at this point in the history
  3. Fold _SoftTargetCrossEntropyLoss into SoftTargetCrossEntropyLoss (#93)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#93
    
    Combines classes _SoftTargetCrossEntropyLoss and SoftTargetCrossEntropyLoss.
    
    Reviewed By: vreis
    
    Differential Revision: D18007214
    
    fbshipit-source-id: fdedc9ed52b22386d9a20c478608e32c89411ce4
    lauragustafson authored and facebook-github-bot committed Oct 22, 2019
    Configuration menu
    Copy the full SHA
    69d36da View commit details
    Browse the repository at this point in the history
  4. Remove num_phases from ClassyTask constructor

    Summary:
    Remove num_phases from the ClassyTask constructor. Also rename it to
    num_epochs which is more standard.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18043780
    
    fbshipit-source-id: 21449fcfbac012c6843a2979ab67dc1e9e80454f
    vreis authored and facebook-github-bot committed Oct 22, 2019
    Configuration menu
    Copy the full SHA
    11c5c25 View commit details
    Browse the repository at this point in the history
  5. video_backend switch argument (#99)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#99
    
    Instead of hard-coding to use `pyav` video decoder, allow user to choose video backend by setting argument `video_backend` in the dataset section of config file. By default, we still use `pyav` video backend.
    
    Reviewed By: taylorgordon20
    
    Differential Revision: D18025331
    
    fbshipit-source-id: 40ad28e2d165b7fd020fb5dba07d90627b4f88a6
    stephenyan1231 authored and facebook-github-bot committed Oct 22, 2019
    Configuration menu
    Copy the full SHA
    6206058 View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2019

  1. Create a fine tuning task (#77)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#77
    
    Implement a `FineTuningTask`. This will support the same API as a regular task, with the additional option to set the pre trained checkpoint and reset_heads. This task also supports regular checkpointing - so the pretrained_checkpoint will only be used if we're not resuming from a checkpoint.
    
    Reviewed By: vreis
    
    Differential Revision: D18008366
    
    fbshipit-source-id: 63c4f5a91baf21c4cc480805aea371a8f532aa09
    mannatsingh authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    8779056 View commit details
    Browse the repository at this point in the history
  2. add classy_hmdb51 dataset (#96)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#96
    
    Build a new dataset class `HMDB51Dataset`, which is a thin wrapper on top of hmdb51 dataset in TorchVision.
    
    Reviewed By: taylorgordon20
    
    Differential Revision: D16999375
    
    fbshipit-source-id: 528417ce59ad6a97bd204653b33c6f42dcd07031
    stephenyan1231 authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    7890e8c View commit details
    Browse the repository at this point in the history
  3. add classy_ucf101 dataset (#101)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#101
    
    Build a new dataset class `UCF101Dataset`, which is a thin wrapper on top of ucf101 dataset in TorchVision.
    
    Reviewed By: taylorgordon20
    
    Differential Revision: D17256446
    
    fbshipit-source-id: d6ea585fe084948638672755d02cc16fef5335a2
    stephenyan1231 authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    af1497c View commit details
    Browse the repository at this point in the history
  4. add Kinetics400Dataset class (#102)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#102
    
    Build a new dataset class `Kinetics400Dataset`, which is a thin wrapper on top of kinetics400 dataset in TorchVision.
    
    Reviewed By: taylorgordon20
    
    Differential Revision: D17416118
    
    fbshipit-source-id: 9d37433b5e3610dd143a585cefc03d1d997df312
    stephenyan1231 authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    8fafac8 View commit details
    Browse the repository at this point in the history
  5. add SyntheticVideoClassificationDataset class (#103)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#103
    
    Add a synthetic video classification dataset to facilitate local model training.
    It is built on top of `RandomVideoDataset`.
    
    Reviewed By: taylorgordon20
    
    Differential Revision: D17683096
    
    fbshipit-source-id: 6fa9dbaf18ea0c22814c46b82414bc2cc505fb8f
    stephenyan1231 authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    ba65951 View commit details
    Browse the repository at this point in the history
  6. extend profiler to support 3D video model (#104)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#104
    
    -  Current profiler only supports to profile 2D image models. It does not compute flops for modules that are commonly used in 3D video model, such as `Conv3D`, `BatchNorm3D`, 'maxpool3d' and `avgpool3d`. This diff extends profiler to support 3D video model profiling.
    - Fix the bug in computing flops for module 'BatchNorm2D`.
    
    Reviewed By: taylorgordon20
    
    Differential Revision: D17977048
    
    fbshipit-source-id: 096c585934ad066466ce9df79a1cc9eec18c5ac3
    stephenyan1231 authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    ce49b72 View commit details
    Browse the repository at this point in the history
  7. Rename ClassyModule to ClassyBlock (#100)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#100
    
    ClassyModule is a very generic name: anything is a module. Rename it to
    ClassyBlock per discussion in T54419016.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18078578
    
    fbshipit-source-id: 171e3ffb9975b3ef071b90796ae15272b90a85f4
    vreis authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    7ec93d0 View commit details
    Browse the repository at this point in the history
  8. a new video transform video_random_scale_crop (#105)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#105
    
    Implement a commonly used video training data augmentation transform. Given a scale range, such as `[256, 320]`, randomly choose a scale. Rescale the clip so that its short edge equals to the chosen scale. Then randomly crop the video
    clip with the specified size, such as `224 x 224`
    
    Reviewed By: takatosp1
    
    Differential Revision: D18025345
    
    fbshipit-source-id: 294bf5aea5ceb00f5e8a4d061894740d0687e502
    stephenyan1231 authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    a909058 View commit details
    Browse the repository at this point in the history
  9. Add ClassificationTask

    Summary: Split ClassyTask into two classes: ClassyTask and ClassificationTask. In practice all of ClassyTask is moving to ClassificationTask, but now ClassyTask defines the API for how to implement a new task.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18056099
    
    fbshipit-source-id: 3be0d866a796be93793020575a1514abef80878c
    vreis authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    97a7a67 View commit details
    Browse the repository at this point in the history
  10. Add finetuning support to the flow trainers (#106)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#106
    
    Added support for fine-tuning models in the fblearner workflows. The fine tuning task is like a regular task, but it needs a pretrained_checkpoint to run.
    
    There are two ways to pass the pretrained_checkpoint - workflow id / checkpoint folder.  There should ideally be just one way, but that'll happen when we enforce just one way to pass the checkpoint URI.
    
    Reviewed By: vreis
    
    Differential Revision: D18069548
    
    fbshipit-source-id: 112cdb4b60e0ae9efce18ff741d1596339f6cf0f
    mannatsingh authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    14d0957 View commit details
    Browse the repository at this point in the history
  11. Raise NotImplementedError in ClassyTask.from_config (#109)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#109
    
    According to Mannat abstract class methods need to do this.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18093957
    
    fbshipit-source-id: 9a93aeb4cfe94adf7beb7b6383f2d2fa15f10e53
    vreis authored and facebook-github-bot committed Oct 23, 2019
    Configuration menu
    Copy the full SHA
    53710d4 View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2019

  1. Kill classy state from classy dataset (#12)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#12
    
    Pull Request resolved: facebookresearch/ClassyVision#111
    
    get_classy_state is not needed for datasets now that we use epoch + seed for shuffling and we eliminated all of the wrappers.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18104669
    
    fbshipit-source-id: 4e22243919c0ac9e7dfc66b94f38fab1bf81d191
    Aaron Adcock authored and facebook-github-bot committed Oct 24, 2019
    Configuration menu
    Copy the full SHA
    45ee71b View commit details
    Browse the repository at this point in the history
  2. Add prepare to ClassyTask (#113)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#113
    
    prepare is one of the methods expected of tasks. I forgot to add this on a
    previous diff.
    
    Differential Revision: D18095594
    
    fbshipit-source-id: eb447dc3b96e4a8c63865bf239b3980ee68cf75f
    vreis authored and facebook-github-bot committed Oct 24, 2019
    Configuration menu
    Copy the full SHA
    afa316a View commit details
    Browse the repository at this point in the history
  3. Add LocalTrainer (#110)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#110
    
    Right now we are instantiating ClassyTrainer directly in a bunch of places,
    but ClassyTrainer is supposed to be a base class. Create a LocalTrainer class
    and switch most call sites to that.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18086693
    
    fbshipit-source-id: 4597cf201ba7f8ddb81866d9559cb2eeb6124fdd
    vreis authored and facebook-github-bot committed Oct 24, 2019
    Configuration menu
    Copy the full SHA
    5bbd7f3 View commit details
    Browse the repository at this point in the history
  4. Convert input args to dict upon checkpointing

    Summary: Pull Request resolved: facebookresearch/ClassyVision#107
    
    Reviewed By: vreis
    
    Differential Revision: D18086942
    
    fbshipit-source-id: 8cb50b7d5ffc7c6cb74109c233ea2f91aa8a6c14
    mannatsingh authored and facebook-github-bot committed Oct 24, 2019
    Configuration menu
    Copy the full SHA
    3280111 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2019

  1. Remove sync side effect from .value call (#112)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#112
    
    Pull Request resolved: fairinternal/ClassyVision#13
    
    Several of our meters silently call the sync_state function when .value is called...which .value is called when str(meter) is called which is a surprising side effect.
    
    In particular, the sync_state function is dangerous because it blocks until all other processes also call it.
    
    This diff makes the sync_state() call explicit and optional.
    
    I modified the hooks and the tests where the meters are called.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18077857
    
    fbshipit-source-id: e6aa0f82c5635e0c1067fa7f6b4fa9545716b872
    Aaron Adcock authored and facebook-github-bot committed Oct 25, 2019
    Configuration menu
    Copy the full SHA
    8f6bd57 View commit details
    Browse the repository at this point in the history
  2. Remove num_classes in ClassyModel (#116)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#116
    
    Having both num_classes and output_shape is a bit redundant. This diff removes `num_classes` from ClassyModel because
    1. In most cases, user just want to see the output shape of the model.
    2. For some models with non classification heads, it doesn't make sense to have `num_classes`
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18111973
    
    fbshipit-source-id: 80a589f959e6ee77c8466279e8fe34b14d037f82
    kazhang authored and facebook-github-bot committed Oct 25, 2019
    Configuration menu
    Copy the full SHA
    dbe3218 View commit details
    Browse the repository at this point in the history
  3. Set video backend correctly (#117)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#117
    
    I messed up a rebase and deleted this code accidentally when moving code from
    ClassyTask to ClassificationTask. Put it back now.
    
    Now that I'm looking at it though, I'm not sure this is the right place to do
    this. Zhicheng: can I move it to classy_train.py instead? People can
    instantiate tasks many different ways and we'll only set the backend correctly
    if they use build_task/from_config.
    
    Reviewed By: stephenyan1231
    
    Differential Revision: D18110510
    
    fbshipit-source-id: 08e8ce5a43c8cea17ead44b206d7c54958722632
    vreis authored and facebook-github-bot committed Oct 25, 2019
    Configuration menu
    Copy the full SHA
    e120a05 View commit details
    Browse the repository at this point in the history
  4. Add gpu tests for circleci (#115)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#115
    
    Circleci now runs tests on cpu and gpu. Improved the circleci workflow slightly.
    
    Needed to add an `__init__.py` to tests (not sure why it worked earlier) and updated the torch requirement to `torch>=1.3.0` since the torchvision nightly install actually installs `torch==1.4...`.
    
    Also fixed the `test.suites` module so that it can run tests when run as `__main__`.
    
    Note that our tests still run don't use gpus even in the gpu_tests since we set `use_gpu` to False. I will change that in a follow up diff.
    
    Reviewed By: vreis
    
    Differential Revision: D18132419
    
    fbshipit-source-id: 5c19ae74bcc8191eb5e83af14bb82c0c8bf2a73a
    mannatsingh authored and facebook-github-bot committed Oct 25, 2019
    Configuration menu
    Copy the full SHA
    49f5644 View commit details
    Browse the repository at this point in the history
  5. Move freeze_trunk from ClassyModel to FineTuningTask (#114)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#114
    
    The only time we'd need to freeze trunks is when we're fine tuning, so I have moved `freeze_trunk` from `ClassyModel` to `FineTuningTask`. The only mention of `freeze_trunk` is inside the task and nowhere else.
    
    Added test cases to make sure `freeze_trunk` works as expected.
    
    Reviewed By: vreis
    
    Differential Revision: D18103181
    
    fbshipit-source-id: 81deb7758813830e8696496f9c351bc62dc9cf43
    mannatsingh authored and facebook-github-bot committed Oct 25, 2019
    Configuration menu
    Copy the full SHA
    692f57e View commit details
    Browse the repository at this point in the history
  6. Change cosine parameter scheduler to support decay and warmup schedul…

    …es (#108)
    
    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#108
    
    Changes cosine parameter scheduler to use a scheduler for either cosine decay or cosine warmup depending on the start/end values of the parameter.
    End goal is to replace the exising warmup in the scheduler with composite schedulers from D18071498, composed of either a cosine/linear warmup and the existing schedule.
    
    Reviewed By: vreis
    
    Differential Revision: D18088008
    
    fbshipit-source-id: a55d4077a413747306bd4c8745114057615edf02
    lauragustafson authored and facebook-github-bot committed Oct 25, 2019
    Configuration menu
    Copy the full SHA
    3b40587 View commit details
    Browse the repository at this point in the history
  7. Use gpu in trainers if available (#121)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#121
    
    Updated the trainers (and tests) to use the gpu, if available. Removed unused args from `get_test_args`.
    
    `ClassyTask.set_classy_state()` doesn't work properly when we copy from gpu to cpu or vice-versa. So I haven't updated `generic_util_test` and `state_classy_state_test`. Will figure out how to handle those situations in the next diff.
    
    Reviewed By: vreis
    
    Differential Revision: D18137853
    
    fbshipit-source-id: 713e2bc7e03913ee546230dc0c79a8f10836b081
    mannatsingh authored and facebook-github-bot committed Oct 25, 2019
    Configuration menu
    Copy the full SHA
    d83d357 View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2019

  1. Rename num_workers to num_dataloader_workers (#122)

    Summary:
    Creating a DistributedTrainer(num_workers=3) does not mean we'll train in 3
    machines. It means we'll use 3 processes to load the data on a single machine.
    That's very confusing, so rename num_workers.
    Pull Request resolved: facebookresearch/ClassyVision#122
    
    Test Plan: sandcastleit
    
    Differential Revision: D18093160
    
    Pulled By: vreis
    
    fbshipit-source-id: f5668b44408c468f3bfdd18032d0a5f23e778c7d
    vreis authored and facebook-github-bot committed Oct 26, 2019
    Configuration menu
    Copy the full SHA
    a3ad5a4 View commit details
    Browse the repository at this point in the history
  2. Remove is_dummy_samples from task (#119)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#119
    
    Pull Request resolved: fairinternal/ClassyVision#14
    
    Since the PyTorch OSS DistributedSampler doesn't use dummy samples, the calls to check for dummy samples are no longer needed.
    
    As a note, there are a few datasets which still use the deprecated shard api, but we are migrating away from those and given that dummy samples only affect one batch in a typical dataset, this is unlikely to make a noticeable difference in final results.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18137884
    
    fbshipit-source-id: a180523b64cdbe1a3f4f39b5386d5e319eabdfd9
    Aaron Adcock authored and facebook-github-bot committed Oct 26, 2019
    Configuration menu
    Copy the full SHA
    91f63fa View commit details
    Browse the repository at this point in the history
  3. Move asserts from parse config (#16)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#16
    
    Pull Request resolved: facebookresearch/ClassyVision#120
    
    This is a simple diff, I think that the constructor should own verifying the inputs rather than the parse config function in case someone uses a custom parsing.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18138588
    
    fbshipit-source-id: bbf3ca780f96a5d3c47ab526552b77e9e1157910
    Aaron Adcock authored and facebook-github-bot committed Oct 26, 2019
    Configuration menu
    Copy the full SHA
    c9d54d8 View commit details
    Browse the repository at this point in the history
  4. Fix shuffling order (#15)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#15
    
    Pull Request resolved: facebookresearch/ClassyVision#118
    
    In my dataset refactor, I forgot to pass the epoch to the sampler so it was using the same shuffle for every epoch.
    
    This diff passes epoch to the _get_sampler function.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18137655
    
    fbshipit-source-id: cb7492740a2c9ab5fad7c30f266893e769cac328
    Aaron Adcock authored and facebook-github-bot committed Oct 26, 2019
    Configuration menu
    Copy the full SHA
    8746e31 View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2019

  1. Move advance_to_next_phase out of oss code (#123)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#123
    
    `advance_to_next_phase` is only used by the elastic trainer, moved it there.
    
    Reviewed By: vreis
    
    Differential Revision: D18145357
    
    fbshipit-source-id: 49157db6959d4a60d9f65c4e53e523d0f6f3862d
    mannatsingh authored and facebook-github-bot committed Oct 27, 2019
    Configuration menu
    Copy the full SHA
    c3fd385 View commit details
    Browse the repository at this point in the history
  2. Remove args from build_task (#126)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#126
    
    No other build methods have an `args` parameter, so remove this one for
    consistency. Command line script should just override the config themselves if
    needed.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18095219
    
    fbshipit-source-id: c199a8db6abbf5e912b3894ec30706b61fac6bd7
    vreis authored and facebook-github-bot committed Oct 27, 2019
    Configuration menu
    Copy the full SHA
    afd5c7a View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2019

  1. extend resnext3d to support pre-activation (#129)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#129
    
    - Pre-activation in resnet model was orignally proposed in (https://arxiv.org/abs/1603.05027). I3D model with pre-activation is used in GloRe work (https://arxiv.org/abs/1811.12814). Extend ResNeXt3D model to support pre-activation.
    - This diff supports to reproduce the results of I3D GloRe results below
       - I3D-50 with ImageNet pre-training:  73.2%
       - I3D-101 with ImageNet pre-training: 74.6%
    
    - Re-produced results
       - I3D-50 without ImageNet pre-training:  69.5%
          f146088370
       - I3D-101 without ImageNet pre-training: 71.7%
          f146088062
    
    Reviewed By: takatosp1
    
    Differential Revision: D18031208
    
    fbshipit-source-id: 271a438ebf11066abd36cb3f5c46ba9aa6037e54
    stephenyan1231 authored and facebook-github-bot committed Oct 28, 2019
    Configuration menu
    Copy the full SHA
    a92ddcb View commit details
    Browse the repository at this point in the history
  2. Clean up meter state to use get_classy_state (#18)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#18
    
    Pull Request resolved: facebookresearch/ClassyVision#128
    
    Meter state dict abstraction serves almost same purpose as get_classy_state / set_classy_state. Cleaning this up before OSS by removing the meter_state_dict calls and moving all logic to get / set classy state calls.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18162805
    
    fbshipit-source-id: d217eafc85e06b4081288227b2b1cc7a5d9d863b
    Aaron Adcock authored and facebook-github-bot committed Oct 28, 2019
    Configuration menu
    Copy the full SHA
    397918c View commit details
    Browse the repository at this point in the history
  3. Add shuffle seed (#127)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#127
    
    Pull Request resolved: fairinternal/ClassyVision#17
    
    Need a way to set use a different shuffle if you want to vary runs. Adding the shuffle seed to the epoch is similar to how FAIRSeq does this, though there is a catch since seeds that are close together essentially just offset through the shuffling cycle.
    
    Note, I had this as part of the call to the iterator since this is a property of the run itself rather than the dataset (also this keeps the amount of state in the dataset down as mentioned earlier). We still need to string this through the classy task.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18161780
    
    fbshipit-source-id: 7509dd9c1fa3a1adfcd06890d66f42c51e87f74c
    Aaron Adcock authored and facebook-github-bot committed Oct 28, 2019
    Configuration menu
    Copy the full SHA
    df18a40 View commit details
    Browse the repository at this point in the history
  4. Remove freeze_trunk from missed configs (#131)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#131
    
    Missed removing `freeze_trunk` from the fblearner configs and also some configs were added after that diff containing `freeze_trunk`, removing all of them.
    
    Reviewed By: vreis
    
    Differential Revision: D18171112
    
    fbshipit-source-id: 527072e58b072d04c7277843791dada87f204ed8
    mannatsingh authored and facebook-github-bot committed Oct 28, 2019
    Configuration menu
    Copy the full SHA
    430fc78 View commit details
    Browse the repository at this point in the history
  5. Remove gluster path datasets from OSS folder (#19)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#19
    
    Pull Request resolved: facebookresearch/ClassyVision#130
    
    Moving gluster based datasets to fb folder. I had to change the relative paths, but otherwise there is nothing else interesting about this diff.
    
    I plan to add a torchvision dataset wrapper with Imagenet / CIFAR examples next
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18162921
    
    fbshipit-source-id: 32f4015b3b5f00f689cb12a19ba1d19a73922ee7
    Aaron Adcock authored and facebook-github-bot committed Oct 28, 2019
    Configuration menu
    Copy the full SHA
    257b3b6 View commit details
    Browse the repository at this point in the history
  6. Use machine executor in circleci for extra memory (#132)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#132
    
    Update the circleci config to use a machine executor instead of a docker one, which doubles the memory available to 8G. This is needed for D18146393's tests to run without running OOM.
    
    Reviewed By: vreis
    
    Differential Revision: D18171282
    
    fbshipit-source-id: 857c2e1043901195a0a4f001209a5666e0c5873a
    mannatsingh authored and facebook-github-bot committed Oct 28, 2019
    Configuration menu
    Copy the full SHA
    c31cfc8 View commit details
    Browse the repository at this point in the history
  7. Handle devices correctly in ClassificationTask and update tests (#124)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#124
    
    Updated `prepare()` to move the model and loss params to cpu if `use_gpu` is `False`. This handles situations where we load the state of a task trained on one device to a task meant to be trained on a different device.
    
    Renamed `tasks_classy_vision_task_test.py` to `tasks_classification_task_test.py`. Deleted `state_classy_state_test.py` and moved its tests to the task tests file. Added a test to check that set state works fine even if the device is changed.
    
    Reviewed By: vreis
    
    Differential Revision: D18146393
    
    fbshipit-source-id: 2346b9824916045cd207943e316570175959e7f9
    mannatsingh authored and facebook-github-bot committed Oct 28, 2019
    Configuration menu
    Copy the full SHA
    91c4028 View commit details
    Browse the repository at this point in the history
  8. Kill OC Datasets from Classy Vision (#135)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#135
    
    Pull Request resolved: fairinternal/ClassyVision#21
    
    The OC datasets use the old everstore interface and they also use old static hive tables which likely are no longer compliant with the recent privacy changes.
    
    As such, I'm killing them so we don't need to keep them up to date / maintain the everstore dataset code.
    
    Reviewed By: vreis, simran2905
    
    Differential Revision: D18185496
    
    fbshipit-source-id: 24f7946b085aa8495a5073637d765d40d894a7fb
    Aaron Adcock authored and facebook-github-bot committed Oct 28, 2019
    Configuration menu
    Copy the full SHA
    a1ef6a2 View commit details
    Browse the repository at this point in the history
  9. OSS trainer fixes (#136)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#136
    
    Switch to `num_dataloader_workers` and remove args from `build_task`.
    
    Reviewed By: vreis
    
    Differential Revision: D18187525
    
    fbshipit-source-id: 6d9ff482d455a57c3c18e510ac3ae6ea5c73baeb
    mannatsingh authored and facebook-github-bot committed Oct 28, 2019
    Configuration menu
    Copy the full SHA
    3db44c8 View commit details
    Browse the repository at this point in the history
  10. Sphinx documentation (#133)

    Summary:
    This adds the basic structure for our sphinx documentation.
    Pull Request resolved: facebookresearch/ClassyVision#133
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18171697
    
    Pulled By: vreis
    
    fbshipit-source-id: 87aaef00f4829eddea8c3ffa425802c6c9126a92
    vreis authored and facebook-github-bot committed Oct 28, 2019
    Configuration menu
    Copy the full SHA
    42feb48 View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2019

  1. Make tensorboardX optional in the training scripts (#138)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#138
    
    Changed the code for `classy_train.py` and `classy_elastic_train.py` so that we don't crash if tensorboard isn't available.
    
    Reviewed By: vreis
    
    Differential Revision: D18192276
    
    fbshipit-source-id: e5366b948189a1411e039b3671ffa400853a646c
    mannatsingh authored and facebook-github-bot committed Oct 29, 2019
    Configuration menu
    Copy the full SHA
    294b867 View commit details
    Browse the repository at this point in the history
  2. Distributed trainer test (#137)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#137
    
    Added a test which runs the distributed trainer using `classy_train.py` paired with `torch.distributed.launch`. This test only runs on circleci.
    
    Renamed `trainer_test.py` to `trainer_local_trainer_test.py`.
    
    Reviewed By: vreis
    
    Differential Revision: D18187666
    
    fbshipit-source-id: 9d6f65967c8730e92315052c53315ee4ab271745
    mannatsingh authored and facebook-github-bot committed Oct 29, 2019
    Configuration menu
    Copy the full SHA
    2d61d3b View commit details
    Browse the repository at this point in the history
  3. extend resnext3d to support r2d model training and weight inflation. …

    …Extend oss trainer to support finetuning (#146)
    
    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#146
    
    - Inflating weights of 2D conv, where are pre-trained on ImageNet, along temporal dimension to initialize 3D conv is first used in Kinetics modeling paper (https://arxiv.org/abs/1705.07750). We implement such weight inflation in this diff.
    - To get a perfect (actually identity) mapping from 2D conv weight tensor to 3D conv weight tensor, we extend `ResNeXt3D` model to support the 2D resnet model training on ImageNet.
    - After weight inflation to initialize 3D conv, we fine-tune the video model. Naturally, it is viewed as a fine-tuning task as opposed to `classification_task`. We extend OSS trainer to support fine-tuning task. It is related to the initial `finetuning task` diff D18008366.
    - Update configs to reflect recent code refactoring in D18103181 and D18056099
    
    Reviewed By: vreis
    
    Differential Revision: D18164596
    
    fbshipit-source-id: 1d10569d9dc4891d1a996dcf598737037610d50c
    stephenyan1231 authored and facebook-github-bot committed Oct 29, 2019
    Configuration menu
    Copy the full SHA
    564969f View commit details
    Browse the repository at this point in the history
  4. Make lr_scheduler public and allow specifying UpdateInterval type fro…

    …m config (#134)
    
    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#134
    
    Pull Request resolved: fairinternal/ClassyVision#20
    
    1. I have a use case where I want to be able to set the value of the update_interval type. Currently, it's hardcoded as EPOCH. The diff allows taking it from config and default is set to epoch
    2. Make the lr_scheduler public (discussed with Vinicius)
    3. In case of update_interval type = STEP, `task.where` should allow 1.0 value as after the final step, we go to update and where is `1.0`
    
    Reviewed By: vreis
    
    Differential Revision: D18177796
    
    fbshipit-source-id: 97ed0e1514c05991d93a0f7c39136ddb133a2377
    prigoyal authored and facebook-github-bot committed Oct 29, 2019
    Configuration menu
    Copy the full SHA
    68d6333 View commit details
    Browse the repository at this point in the history
  5. Move the dataset_instances_test to the fb/test folder (#25)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#25
    
    Pull Request resolved: facebookresearch/ClassyVision#142
    
    Move as Simran suggested of the dataset_instances_test to the fb folder. It refers to internal datasets and is mostly for devserver testing so we shouldn't have it in the OSS repo.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18194610
    
    fbshipit-source-id: a7031bf4edc3822cda0fd8ac6412d72eca4ca072
    Aaron Adcock authored and facebook-github-bot committed Oct 29, 2019
    Configuration menu
    Copy the full SHA
    185f641 View commit details
    Browse the repository at this point in the history
  6. Implement __all__ in dataset module (#143)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#143
    
    Sphinx requires __all__ in order to discover what classes to generate
    documentation for. Implement that for classy_vision.dataset
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18195471
    
    fbshipit-source-id: 63a6e1ad2f88f9be9765aa8a4f082f5f764cc8f4
    vreis authored and facebook-github-bot committed Oct 29, 2019
    Configuration menu
    Copy the full SHA
    ac04851 View commit details
    Browse the repository at this point in the history
  7. Implement __all__ for optim module (#144)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#144
    
    Sphinx requires __all__. Implement that for optimizers
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18195517
    
    fbshipit-source-id: 82630feb109fb163e9f40462d81517a06a4a0e20
    vreis authored and facebook-github-bot committed Oct 29, 2019
    Configuration menu
    Copy the full SHA
    13c12da View commit details
    Browse the repository at this point in the history
  8. Implement __all__ for optim.param_scheduler (#145)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#145
    
    Implement __all__ as required by Sphinx to generate documentation.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18195575
    
    fbshipit-source-id: d7b786745d3247f1f8235dfbeba4d58b5192c9bb
    vreis authored and facebook-github-bot committed Oct 29, 2019
    Configuration menu
    Copy the full SHA
    0ce440b View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2019

  1. Add test verifying learning rate from hooks

    Summary:
    Priya was debugging our LR using a hook and reported we were not using the
    correct values. Add a test to verify we get the correct LR on each optimizer
    update.
    
    Turns out in this case there was no bug: we were just logging the LR at the
    wrong spot in the training loop (on_loss instead of on_update -- on_loss gets
    called for both training and validation phases so it's not suitable for LR
    logging).
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18220081
    
    fbshipit-source-id: e4ad4b6dd6820740be8c472767a72ab9570a811c
    vreis authored and facebook-github-bot committed Oct 30, 2019
    Configuration menu
    Copy the full SHA
    b20176f View commit details
    Browse the repository at this point in the history
  2. Remove unused weight_decay_batchnorm parameter from configs

    Summary: Pull Request resolved: facebookresearch/ClassyVision#148
    
    Reviewed By: vreis
    
    Differential Revision: D18212744
    
    fbshipit-source-id: 3603e430073a50912bf0e85c4cf4dfb150c6acbc
    mannatsingh authored and facebook-github-bot committed Oct 30, 2019
    Configuration menu
    Copy the full SHA
    1eed4ac View commit details
    Browse the repository at this point in the history
  3. Do not mutate config in build_param_scheduler, update test config in …

    …tasks_classification_task_test (#147)
    
    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#147
    
    Fix an issue where we were mutating the config which caused `tasks_classification_task_test` to fail. Also updated the test in `tasks_classification_task_test` to use a faster test configuration so it takes seconds to run instead of minutes.
    
    Reviewed By: vreis
    
    Differential Revision: D18208475
    
    fbshipit-source-id: a875d0e577e3cd0d8c1887830dd46cb52fda8570
    mannatsingh authored and facebook-github-bot committed Oct 30, 2019
    Configuration menu
    Copy the full SHA
    1bd2306 View commit details
    Browse the repository at this point in the history
  4. Remove get_config from tasks (#149)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#149
    
    Removed `task.get_config()` from all the tasks. Since we had added the `config_DO_NOT_USE` attributes just for this function, removed them from all the builders.
    To still pass the config, we now use the `input_args` in the checkpoint.
    
    Updated the oss parser arg `config` to `config_file` and set the `config` as a separate arg.
    
    Reviewed By: vreis
    
    Differential Revision: D18211199
    
    fbshipit-source-id: f355f02f66f49c1829c4ab2847e0a361fadee491
    mannatsingh authored and facebook-github-bot committed Oct 30, 2019
    Configuration menu
    Copy the full SHA
    397c38a View commit details
    Browse the repository at this point in the history
  5. Fix imports for meters

    Summary: Pull Request resolved: facebookresearch/ClassyVision#154
    
    Reviewed By: vreis
    
    Differential Revision: D18230827
    
    fbshipit-source-id: 58d542e931bcba140ca4e8bc1415354a8b3929b0
    mannatsingh authored and facebook-github-bot committed Oct 30, 2019
    Configuration menu
    Copy the full SHA
    1cb331f View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2019

  1. Website (#155)

    Summary:
    Add a basic website based on docusaurus and using Captum's template.
    
    It looks like this: https://our.intern.facebook.com/intern/px/p/PF0h
    Pull Request resolved: facebookresearch/ClassyVision#155
    
    Differential Revision: D18236883
    
    Pulled By: vreis
    
    fbshipit-source-id: ff324885abce8489740998ee09b8b2058ddc38f2
    vreis authored and facebook-github-bot committed Oct 31, 2019
    Configuration menu
    Copy the full SHA
    4a17368 View commit details
    Browse the repository at this point in the history
  2. Move MSDNet to FB folder (#157)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#157
    
    We don't need to open-source this: MSDNet is not that popular. Less code  to
    maintain is better.
    
    Differential Revision: D18232939
    
    fbshipit-source-id: 19b476848a20020e293bad4b0daabc67893aa8d3
    vreis authored and facebook-github-bot committed Oct 31, 2019
    Configuration menu
    Copy the full SHA
    97b3d28 View commit details
    Browse the repository at this point in the history
  3. Add fine tuning example (#150)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#150
    
    Added a notebook with an example for fine tuning. Instead of building the task directly from a config, build each component separately so that each step can be explained and it also helps give an idea of the API.
    
    Also updated `load_checkpoint` to make the `device` arg optional and log that the checkpoint has been loaded.
    
    Reviewed By: vreis
    
    Differential Revision: D18214890
    
    fbshipit-source-id: 26c8b660a9d5fda201cbf2ac3dc7e02630c3f5a9
    mannatsingh authored and facebook-github-bot committed Oct 31, 2019
    Configuration menu
    Copy the full SHA
    f218976 View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2019

  1. Composite parameter schedule (#98)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#98
    
    Creates a composite scheduler, based on [design doc](https://our.intern.facebook.com/intern/anp/view/?id=148450). Allows scheduler for a parameter to be composed of different intermediate schedulers, each for a given percentage of training.
    
    The following is an example config for a scheduler that updates based on steps, and for the first 30% of training the learning rate is 0.42, and during the last 70% of training the learning rate is cosine decayed from 0.42 to 0.0001.
    
         {
                "name": "composite",
                "interval": "step",
                "schedulers": [
                   {"name": "constant", "value": 0.42},
                   {"name": "cosine", "max_lr": 0.42, "min_lr": 0.0001},
                ],
                "lengths": [0.3, 0.7],
          }
    
    Reviewed By: mannatsingh, vreis
    
    Differential Revision: D18071498
    
    fbshipit-source-id: d6f1a095e41a2f545b0cb951358ff964823f301f
    lauragustafson authored and facebook-github-bot committed Nov 1, 2019
    Configuration menu
    Copy the full SHA
    9530b84 View commit details
    Browse the repository at this point in the history
  2. Linear scheduler (#125)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#125
    
    Adds a linear scheduler. Can be used for warmup or decay depending on
    start and end values. Example config:
    
      {
        "name": "linear",
        "start_lr": 0.0,
        "end_lr": 0.1,
      }
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18146813
    
    fbshipit-source-id: 43927c8b9e68b2550ba2fe0499ad3c0646445719
    lauragustafson authored and facebook-github-bot committed Nov 1, 2019
    Configuration menu
    Copy the full SHA
    06c51a0 View commit details
    Browse the repository at this point in the history
  3. ClassyLoss Docs (#163)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#163
    
    As titled
    
    Reviewed By: vreis
    
    Differential Revision: D18275102
    
    fbshipit-source-id: 3ee9c2517b30d3b121dbb151f4f8c318063daabd
    simran2905 authored and facebook-github-bot committed Nov 1, 2019
    Configuration menu
    Copy the full SHA
    51b86e7 View commit details
    Browse the repository at this point in the history
  4. Param scheduler docs (#27)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#27
    
    Pull Request resolved: facebookresearch/ClassyVision#165
    
    Doc strings for the Classy Vision param scheduler
    
    Reviewed By: vreis
    
    Differential Revision: D18275426
    
    fbshipit-source-id: 573effc3948e49638bff19a6174f22324f522576
    Aaron Adcock authored and facebook-github-bot committed Nov 1, 2019
    Configuration menu
    Copy the full SHA
    91d8fc7 View commit details
    Browse the repository at this point in the history
  5. Setup intersphinx (#158)

    Summary:
    Allows us to reference pytorch documentation
    Pull Request resolved: facebookresearch/ClassyVision#158
    
    Differential Revision: D18273513
    
    Pulled By: vreis
    
    fbshipit-source-id: d2cd6aa2b2196fb177a95836b321d9d3e94382e8
    vreis authored and facebook-github-bot committed Nov 1, 2019
    Configuration menu
    Copy the full SHA
    72dfb50 View commit details
    Browse the repository at this point in the history
  6. Torchhub documentation (#26)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#26
    
    Pull Request resolved: facebookresearch/ClassyVision#161
    
    Torchhub documentation via sphinx
    
    Reviewed By: vreis
    
    Differential Revision: D18274443
    
    fbshipit-source-id: c3aea44196f51f43aaced9d79f22422d9b914a3f
    Aaron Adcock authored and facebook-github-bot committed Nov 1, 2019
    Configuration menu
    Copy the full SHA
    8b32376 View commit details
    Browse the repository at this point in the history
  7. ClassyHead documentation

    Summary: Pull Request resolved: facebookresearch/ClassyVision#160
    
    Differential Revision: D18274974
    
    Pulled By: vreis
    
    fbshipit-source-id: e6f7549866c6a8d43df02968fa0c399d4ad0f70b
    vreis authored and facebook-github-bot committed Nov 1, 2019
    Configuration menu
    Copy the full SHA
    461920c View commit details
    Browse the repository at this point in the history
  8. Documentation for classy_train.py

    Summary: Pull Request resolved: facebookresearch/ClassyVision#166
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18278642
    
    fbshipit-source-id: b99113daff1b986dbc1c7fb24263deaf897da291
    vreis authored and facebook-github-bot committed Nov 1, 2019
    Configuration menu
    Copy the full SHA
    4a02e42 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2019

  1. attribution of slowfast stem, stage, block implementation. Step 1/2 (…

    …#156)
    
    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#156
    
    Step 1: The very first implementation of `ResNeXt3DStem`, `ResBlock` and `ResStage` borrows implementation from SlowFast code. This diff reflects the origin of those CV implementation and also show the new changes that later made.
    
    Content in `_resnext3d_block.py`, `_resnext3d_stage.py` and `_resnext3d_stem.py` is identical to those in existing `resnext3d_block.py`, `resnext3d_stage.py` and `resnext3d_stem.py`. To reflect that part of implement was borrowed from SF, we keep 3 source files with underscore prefix in current diff, and rename it to overwrite 3 source files without underscore prefix in next diff D18240637 (step 2).
    
    Reviewed By: takatosp1
    
    Differential Revision: D18240015
    
    fbshipit-source-id: 0ab321e28354ad0c280023c62a1ea61bc1408eec
    stephenyan1231 authored and facebook-github-bot committed Nov 2, 2019
    Configuration menu
    Copy the full SHA
    13e5426 View commit details
    Browse the repository at this point in the history
  2. LR schedulers to use Composite Scheduler for Warmup (#169)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#169
    
    - Removes warmup from all parameter schedulers
    - Updates config files that use warmup to use composite scheduler with linear warmup
    - Composite scheduler propagates `num_epochs` parameter to intermediate schedulers, (for configs that don't explicitly specify `num_epochs` in the parameter scheduler)
    - Updates tests
    
    Reviewed By: vreis
    
    Differential Revision: D18267195
    
    fbshipit-source-id: 39a739a1c0db0572d7272f09be70dd49f7d2de9b
    lauragustafson authored and facebook-github-bot committed Nov 2, 2019
    Configuration menu
    Copy the full SHA
    7aa2ab9 View commit details
    Browse the repository at this point in the history
  3. attribution of slowfast stem, stage, block implementation. Step 2/2 (…

    …#168)
    
    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#168
    
    Step 1: The very first implementation of `ResNeXt3DStem`, `ResBlock` and `ResStage` borrows implementation from SlowFast code. This diff reflects the origin of those CV implementation and also show the new changes that later made.
    
    Step 2: rename `_resnext3d_block.py` to `resnext3d_block.py`. Also rename `_resnext3d_stem.py` and `_resnext3d_stage.py`.  Remove `weight_init_helper.py` as we have moved the weight initialization into `ResNeXt3D._init_parameter()` method.
    
    Reviewed By: vreis
    
    Differential Revision: D18240637
    
    fbshipit-source-id: d12698af033d704738ca17ac85c9ccb5ddc77164
    stephenyan1231 authored and facebook-github-bot committed Nov 2, 2019
    Configuration menu
    Copy the full SHA
    0cf0d9f View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2019

  1. Docstrings for ClassyMeter

    Summary: Pull Request resolved: facebookresearch/ClassyVision#159
    
    Reviewed By: vreis
    
    Differential Revision: D18274520
    
    fbshipit-source-id: 4f9d7d6a6911ccd7ad3af544a3ae755ca8046e7c
    mannatsingh authored and facebook-github-bot committed Nov 4, 2019
    Configuration menu
    Copy the full SHA
    5044f39 View commit details
    Browse the repository at this point in the history
  2. Docstrings for ClassyDataset

    Summary: Pull Request resolved: facebookresearch/ClassyVision#162
    
    Reviewed By: vreis
    
    Differential Revision: D18274571
    
    fbshipit-source-id: dc70f08502d72210287c9e1066bf81da6e181eec
    mannatsingh authored and facebook-github-bot committed Nov 4, 2019
    Configuration menu
    Copy the full SHA
    4af167d View commit details
    Browse the repository at this point in the history
  3. Docstrings for ClassyTask

    Summary: Pull Request resolved: facebookresearch/ClassyVision#164
    
    Reviewed By: vreis
    
    Differential Revision: D18275769
    
    fbshipit-source-id: 8e9f194de2f9edcfecd04d86fc2028d83fe5b0de
    mannatsingh authored and facebook-github-bot committed Nov 4, 2019
    Configuration menu
    Copy the full SHA
    37d579a View commit details
    Browse the repository at this point in the history
  4. Clear head outputs when reset head (#171)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#171
    
    We're using head outputs in ClassyBlock, we should clear the information when we reset the heads.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18283939
    
    fbshipit-source-id: 146dc0230d311b5a85fb834ed06b8fe94065bb8d
    kazhang authored and facebook-github-bot committed Nov 4, 2019
    Configuration menu
    Copy the full SHA
    e7ecd34 View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2019

  1. Update license headers to be compatible with the linter

    Summary: Pull Request resolved: facebookresearch/ClassyVision#173
    
    Reviewed By: zertosh
    
    Differential Revision: D18308967
    
    fbshipit-source-id: 3b81c63861416f788babbd28f82b980a3db405cc
    mannatsingh authored and facebook-github-bot committed Nov 5, 2019
    Configuration menu
    Copy the full SHA
    2ee1a87 View commit details
    Browse the repository at this point in the history
  2. Add ISSUE_TEMPLATE (#175)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#175
    
    Added an ISSUE_TEMPLATE folder.
    
    Reviewed By: vreis
    
    Differential Revision: D18312858
    
    fbshipit-source-id: 174318572bb5b4c849367cf4c5d3f7b505b68b33
    mannatsingh authored and facebook-github-bot committed Nov 5, 2019
    Configuration menu
    Copy the full SHA
    3ef7ac6 View commit details
    Browse the repository at this point in the history
  3. Update CODE_OF_CONDUCT.md

    Summary: Pull Request resolved: facebookresearch/ClassyVision#174
    
    Reviewed By: vreis
    
    Differential Revision: D18313194
    
    fbshipit-source-id: be60535e7ca0cb16a71025849fba6cd509108f23
    mannatsingh authored and facebook-github-bot committed Nov 5, 2019
    Configuration menu
    Copy the full SHA
    5b66a1f View commit details
    Browse the repository at this point in the history
  4. Cleanup Classy Video interface (#141)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#141
    
    Pull Request resolved: fairinternal/ClassyVision#24
    
    In this diff I do a few things to cleanup the video API. Note, the intention is for this to be a no-op refactor.
    
    1. I remove any constructor params not used in the base class. I did this to reduce the amount of state stored in the base class and to make it easier to track. Currently, some datasets (for example the synthetic dataset) may not use these and all of the datasets that do use these, just pass them through to the torchvision dataset that uses them. If we need access to them in the future, then can add them back.
    2. Made the metadata methods classmethods to make the trace of the metadata easier.
    
    Reviewed By: vreis
    
    Differential Revision: D18175419
    
    fbshipit-source-id: b64efb4c4862b5a8d5c44662bde7b8c0003ec415
    Aaron Adcock authored and facebook-github-bot committed Nov 5, 2019
    Configuration menu
    Copy the full SHA
    4b9d5b9 View commit details
    Browse the repository at this point in the history
  5. Replace wrap_torchvision_video_dataset with transforms (#140)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#140
    
    Pull Request resolved: fairinternal/ClassyVision#22
    
    The wrap_torchvision_video_dataset is equivalent to a simple transform so I want to merge all of the logic to a transform. To do this I added the VideoTupleToTransformMap helper transform. Ultimately though, this should be a no-op refactor.
    
    This might seem less straightforward, but it makes it potentially easier for the torchvision video datasets to be used with new tasks in the future.
    
    Note: I do not like having the transform in the .from_config function, but I thought this was a good first step before registering and adding the videotuple to all of the video configs now. But, I plan to do something similar with the regular image datasets in the next diff and then convert everything to add the transform to config (then users can customize this based on their task or whatever their own needs are). I'm open to alternative suggestions.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18176264
    
    fbshipit-source-id: 8b5a014bc0db8e7dd63216b018954b63125f3a53
    Aaron Adcock authored and facebook-github-bot committed Nov 5, 2019
    Configuration menu
    Copy the full SHA
    79d431a View commit details
    Browse the repository at this point in the history
  6. Make dataset passable param for ClassyDataset (#23)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#23
    
    Pull Request resolved: facebookresearch/ClassyVision#139
    
    This diff is a bit absurd, but I think it's good to get in the release. Here, we make the dataset a first class constructor param rather than modifying the dataset member in the __init__ function of child classes. Again, should be no-op refactor.
    
    To match this logic, I also made the load dataset calls in many of our datasets to be stand-alone functions which emphasizes that we are passing a dataset to the ClassyDataset wrapper.
    
    The deprecated everstore datasets were not changed.
    
    A couple of reasons for this change:
    1. Now it's more straightforward to use datasets in interactive mode since we can easily take a ad-hoc dataset (all it needs is a length and getitem member) and wrap it with a classy dataset to get distributed sampler / iterator / batching / transform logic.
    2. It is a cleaner, more explicit, way of setting the dataset member
    
    Derivative changes:
    1. I had to add a map_key transform argument to the build_transform function to support all of our use cases without touching every single update. This could be split out in a separate diff if y'all want.
    
    Follow-up:
    1. I think we should rework the build transform function
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18187585
    
    fbshipit-source-id: 6188db63422c250e0aa848dae18fef792d205f91
    Aaron Adcock authored and facebook-github-bot committed Nov 5, 2019
    Configuration menu
    Copy the full SHA
    a999598 View commit details
    Browse the repository at this point in the history
  7. Docstrings for ClassyOptimizer

    Summary: Pull Request resolved: facebookresearch/ClassyVision#167
    
    Reviewed By: vreis
    
    Differential Revision: D18280962
    
    fbshipit-source-id: 0c37b3e72520e7566e1d0d9d69eeb3587fba7c95
    mannatsingh authored and facebook-github-bot committed Nov 5, 2019
    Configuration menu
    Copy the full SHA
    5ead1be View commit details
    Browse the repository at this point in the history
  8. Do not apply weight decay to SyncBatchNorm by default

    Summary: I realised dursing my sync batch norm training that I we apply weight decay to SyncBatchNorm, fixing that in this diff.
    
    Reviewed By: vreis
    
    Differential Revision: D18328475
    
    fbshipit-source-id: ef115860437008094d183eab477c14f734a403c9
    mannatsingh authored and facebook-github-bot committed Nov 5, 2019
    Configuration menu
    Copy the full SHA
    c66aca0 View commit details
    Browse the repository at this point in the history
  9. Code refactoring (#170)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#170
    
    Make the following changes to refactor video-related code.
    - Use `nn.Sequential` to represent the sequential transforms in each pathway of `ResStage`. This can greatly simplify the `forward` pass implementation.
    - Change the all indices of pathway, stage, and block to start with 0, which is more consistent
    - Add a property `video_clips` with default implementation to `ClassyVideoDataset`.  This property is used by all child classes except `SyntheticVideoClassificationDataset`
    
    Reviewed By: aadcock
    
    Differential Revision: D18290108
    
    fbshipit-source-id: 9aeff31a83fd01cb5348cbc2a03fe2c9566d64cc
    stephenyan1231 authored and facebook-github-bot committed Nov 5, 2019
    Configuration menu
    Copy the full SHA
    64e00ad View commit details
    Browse the repository at this point in the history
  10. Do not save checkpoints in test-only mode

    Summary: Check for test_only model withing fblearner checkpoint and checkpoint hooks
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18240444
    
    fbshipit-source-id: f4e27dd87737686e830adf89785871abe14aaf2d
    Polina Kuznetsova authored and facebook-github-bot committed Nov 5, 2019
    Configuration menu
    Copy the full SHA
    be56d44 View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2019

  1. update training configs (#179)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#179
    
    - Update/add the following training configs.  Some go to FB-specific flow folder and the others go to OSS folder.
    - For each ongoing run, I also add a previous which the ongoing run should match.
    
    - FB Flow
      - hmdb51 dataset
        - `train_hmdb51_r3d34`
          - f149269486
          - f149398339
          - Match f145621757
        - `train_hmdb51_r3d34_koski`
      - ucf101 dataset
        - `train_ucf101_r3d34`
           - f149271472
           - f149398208
           - Match f145659615
        - `train_ucf101_r3d34_koski`
      - kinetics400 dataset
        - `train_kinetics400_sf_i3d50`
           - f149269921
           - f149398170
           - Match f147773731
        - `train_kinetics400_sf_i3d50_koski`
        - `train_kinetics400_sf_i3d101`
           - f149285667
           - Match f148297425
        - `train_kinetics400_glore_i3d50`
           - f149270081
           - Match f146088370
        - `train_kinetics400_glore_i3d101`
           - f149287544
           - Match f146088062
        - `finetune_kinetics400_sf_i3d50`
        - `finetune_kinetics400_glore_i3d50`
      - ImageNet (for pretraining)
        - `train_imagenet_sf_r2d50`
           - f149268874
           - Match f147884499
        - `train_imagenet_sf_r2d101`
           - f149286058
           - match f147885329
        - `train_imagenet_glore_r2d50`
           - f149284503
           - match f147883566
        - `train_imagenet_glore_r2d101`
           - f149286136
           - match f147888276
    
    - OSS
      - hmdb51 dataset
        - `r3d34_hmdb51_classy_config`
      - ucf101 dataset
        - `r3d34_ucf101_classy_config`
      - kinetics400 dataset
        - `sf_i3d50_kinetics400_classy_config`
        - `glore_i3d50_kinetics400_classy_config`
      - ImageNet (for pretraining)
        - `sf_r2d50_classy_config`
        - `sf_r2d101_classy_config`
        - `glore_r2d50_classy_config`
        - `glore_r2d101_classy_config`
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18323210
    
    fbshipit-source-id: 3ac9c6d27ed76cd65b8da9cafd5a22a570cf7147
    stephenyan1231 authored and facebook-github-bot committed Nov 6, 2019
    Configuration menu
    Copy the full SHA
    2482238 View commit details
    Browse the repository at this point in the history
  2. Move ISSUE_TEMPLATE to .github (#176)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#176
    
    Apparently if we use folders for the `ISSUE_TEMPLATE`s, github only picks them up if they're inside `.github`
    
    Reviewed By: vreis
    
    Differential Revision: D18327286
    
    fbshipit-source-id: 0bfb1263215c4e4e91e604947ecc76b565d25986
    mannatsingh authored and facebook-github-bot committed Nov 6, 2019
    Configuration menu
    Copy the full SHA
    2faace5 View commit details
    Browse the repository at this point in the history
  3. Fix on box video clips dataset (#28)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#28
    
    Pull Request resolved: facebookresearch/ClassyVision#180
    
    The video clips dataset does not need a rekey transform so when I changed the default video transform to map tuples -> dict, this broke the dataset.
    
    This change allows the user to specify a rekey transform (or none at all)
    
    Reviewed By: vreis
    
    Differential Revision: D18344009
    
    fbshipit-source-id: 6d07f5aa3a0ac4f78573a83aa8e1a41c18fcd5ba
    Aaron Adcock authored and facebook-github-bot committed Nov 6, 2019
    Configuration menu
    Copy the full SHA
    aa63f46 View commit details
    Browse the repository at this point in the history
  4. Fix Transform style nits (#29)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#29
    
    Pull Request resolved: facebookresearch/ClassyVision#183
    
    Make style of the build transform function consistent between images and video.
    
    Reviewed By: vreis
    
    Differential Revision: D18350041
    
    fbshipit-source-id: f4dd1244d0574d3cd23652272429c8babff9ae9c
    Aaron Adcock authored and facebook-github-bot committed Nov 6, 2019
    Configuration menu
    Copy the full SHA
    a213776 View commit details
    Browse the repository at this point in the history
  5. Add example to create a Classy Loss (#178)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#178
    
    Added a notebook with a loss tutorial.
    
    Reviewed By: vreis, simran2905
    
    Differential Revision: D18333059
    
    fbshipit-source-id: a729d0d2adc9e17b67a4742eebff7597a9787eb3
    mannatsingh authored and facebook-github-bot committed Nov 6, 2019
    Configuration menu
    Copy the full SHA
    89e3558 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2019

  1. Models test -- Resnext edition (#185)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#185
    
    Test resnext / resnet code path. One small model test to touch each, does build / forward pass / get & set state.
    
    Reviewed By: vreis
    
    Differential Revision: D18365214
    
    fbshipit-source-id: 3fcdefa4a4f996877873ae1aa3b8da987ff99d85
    Aaron Adcock authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    ca31a99 View commit details
    Browse the repository at this point in the history
  2. Models test -densenet edition (#31)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#31
    
    Pull Request resolved: facebookresearch/ClassyVision#186
    
    Tests for the densenet models
    
    Reviewed By: vreis
    
    Differential Revision: D18365529
    
    fbshipit-source-id: 2495c04626c389945387240cb8a8ef6b48b4d5a3
    Aaron Adcock authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    01b6829 View commit details
    Browse the repository at this point in the history
  3. Move Inception / VGG to FB folder until we improve the constructor AP…

    …I (#32)
    
    Summary:
    Pull Request resolved: fairinternal/ClassyVision#32
    
    Pull Request resolved: facebookresearch/ClassyVision#187
    
    Move Inception / VGG models to fb folder because API is not ready for OSS
    
    Reviewed By: vreis
    
    Differential Revision: D18365621
    
    fbshipit-source-id: d716fd8e6c69418e4c8afe9f72ed60c3c3ffcaad
    Aaron Adcock authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    63b0da5 View commit details
    Browse the repository at this point in the history
  4. Fix DDP training with checkpoint_folder (#182)

    Summary:
    When running classyvision in a distributed setup on OSS with `checkpoint_folder`, I've met the following problem:
    ```
     45 0: Traceback (most recent call last):
     46 0:     os.makedirs(args.checkpoint_folder)
     47 0:   File "/private/home/fmassa/.conda/envs/classyvision/lib/python3.7/os.py", line 221, in makedirs
     48 0:   File "classy_train.py", line 129, in <module>
     49 0:     os.makedirs(args.checkpoint_folder)
     50 0:   File "/private/home/fmassa/.conda/envs/classyvision/lib/python3.7/os.py", line 221, in makedirs
     51 0:     args = parse_train_arguments()
     52 0:   File "/private/home/fmassa/github/ClassyVision/classy_vision/generic/opts.py", line 198, in parse_train_arguments
     53 0:     os.makedirs(args.checkpoint_folder)
     54 0:   File "/private/home/fmassa/.conda/envs/classyvision/lib/python3.7/os.py", line 221, in makedirs
     55 0:     args = parse_train_arguments()
     56 0:   File "/private/home/fmassa/github/ClassyVision/classy_vision/generic/opts.py", line 198, in parse_train_arguments
     57 0:     args = check_generic_args(args)
     58 0:   File "/private/home/fmassa/github/ClassyVision/classy_vision/generic/opts.py", line 142, in check_generic_args
     59 0:     args = check_generic_args(args)
     60 0:   File "/private/home/fmassa/github/ClassyVision/classy_vision/generic/opts.py", line 142, in check_generic_args
     61 0:     os.makedirs(args.checkpoint_folder)
     62 0:   File "/private/home/fmassa/.conda/envs/classyvision/lib/python3.7/os.py", line 221, in makedirs
     63 0:     os.makedirs(args.checkpoint_folder)
     64 0:   File "/private/home/fmassa/.conda/envs/classyvision/lib/python3.7/os.py", line 221, in makedirs
     65 0:     mkdir(name, mode)
     66 0:     mkdir(name, mode)    FileExistsError
     67 0: mkdir(name, mode)
     68 0: mkdir(name, mode):
     69 0: [Errno 17] File exists: '/checkpoint/fmassa/jobs/classification_logs/classyvision_19798061'    FileExistsError
     70 0: mkdir(name, mode)FileExistsError    mkdir(name, mode)
    ```
    This error is due to the fact that each individual python process is trying to create a folder at the same time.
    By default, [`os.makedirs` raises a `FileExistError`](https://docs.python.org/3/library/os.html#os.makedirs) if the folder already exists, which is more likely to happen when the number of GPUs (== python processes) increases.
    
    One option is to pass `exist_ok=True` to `os.makedirs`, which is Python 3-only (but that's fine given that ClassyVision is also Python 3-only).
    Pull Request resolved: facebookresearch/ClassyVision#182
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18347910
    
    Pulled By: vreis
    
    fbshipit-source-id: 05331d662601bb0a91b54e98275982897d564892
    fmassa authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    bcea5c1 View commit details
    Browse the repository at this point in the history
  5. Documentation for build_* methods (#189)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#189
    
    Documents all build_* methods
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18372353
    
    fbshipit-source-id: eee0645f57718eb7e29ccbea8f3ef5f4b319986d
    vreis authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    15b3af3 View commit details
    Browse the repository at this point in the history
  6. Documentation for register_* functions (#190)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#190
    
    Document all register_* using a consistent style
    
    Reviewed By: aadcock
    
    Differential Revision: D18372583
    
    fbshipit-source-id: c0aa04e8dbd4e60abef0ec5b732a79e1fc904448
    vreis authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    7a2d93e View commit details
    Browse the repository at this point in the history
  7. Utility to start a classy project (#152)

    Summary:
    Adds a utility to start a new project with classy vision. This gets installed as a binary under /bin and can be invoked anywhere. Usage is
    
      classy-project <project_name>
    
    This creates a folder called project_name with a few template files and a version of classy_train.py.
    Pull Request resolved: facebookresearch/ClassyVision#152
    
    Test Plan: New integration test
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18228965
    
    Pulled By: vreis
    
    fbshipit-source-id: f64cbf8f5fa4fd70f2f0e7ac224cd5622e2ff577
    vreis authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    b11c3a3 View commit details
    Browse the repository at this point in the history
  8. Documentation for register_transform function

    Summary: I missed this one in the previous diff -- landed it too early
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18374469
    
    fbshipit-source-id: e7b1bb8f1b28d8fd1aaa5bb28aa5edd0d9fbe38a
    vreis authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    fe2e4ce View commit details
    Browse the repository at this point in the history
  9. fix resnext3d_block to enable model_complexity_hook (#188)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#188
    
    `PostactivatedShortcutTransformation` module does not contain any child module when it represents identity mapping. In such case, it is considered as leaf module by `ModelComplexityHook`. However, it is not handled by `_layer_flops()` in `profiler.py`.
    
    This breaks  `ModelComplexityHook` to compute video model complexity. We fix it in the diff.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18368224
    
    fbshipit-source-id: 2ec379550fe624e5a8bef29ef130348644860509
    stephenyan1231 authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    00a9e3c View commit details
    Browse the repository at this point in the history
  10. Adds a way to plumb multiprocessing_context to ClassyTrainer and Clas…

    …syElasticTrainer that will then use the passed context to create new subprocesses (for dataloaders)
    
    Summary:
    This is needed to pass in forkserver multiprocessing context in order to create new subprocesses.
    This provides users the flexibility to create subprocess in CV with the context they provide (as CV doesn't want to restrict users with one context vs the other).
    
    This also helps with some of the PET dependency singletons getting destroyed that aren't recreated properly when no multiprocessing_context is being passed.
    
    Fb internal dependencies doesn't sit well with fork so the recommended way is to use python version >3 with forkserver so with this we can pass the appropriate multiprocessing context.
    This diff also adds the `use_forkserver=True` to flow async operator for `launch_one_node`.
    
    Context: T48412588
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18311080
    
    fbshipit-source-id: 7f98c8cf39ec717c3dccc41a8059ca7d10fc4868
    nssherpa authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    7f66249 View commit details
    Browse the repository at this point in the history
  11. prod_resnext3d model with new Global Reasoning Unit (#181)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#181
    
    - Implement Global Reasoning Networks (`glore`) (https://arxiv.org/abs/1811.12814). The reference implementation is on Github (https://github.com/facebookresearch/GloRe)
    
    - For now, we don't plan to open source `glore`. Thus, we implement a `ProdResNeXt3D` model in `prod_resnext3d.py`. Refactor `ResNeXt3D` to reduce the duplicate code between `ResNeXt3D` and `ProdResNeXt3D`.
       - In the long-run, we are more flexible to add more implementation to `ProdResNeXt3D` to meet prod needs while keeping the open source `ResNeXt3D` implementation minimal.
    
    - 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`.
    
    Reviewed By: vreis
    
    Differential Revision: D18344566
    
    fbshipit-source-id: ccf27f732a0839d3dfe93afb54c9ce05d1833cf6
    stephenyan1231 authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    5277831 View commit details
    Browse the repository at this point in the history
  12. Allow input_key to be a list (#192)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#192
    
    Allow input_key and input_shape to be lists for multimodal models. In particular, this changes the `get_model_dummy_input` function that is called by the profiler.
    
    Reviewed By: aadcock
    
    Differential Revision: D18361596
    
    fbshipit-source-id: 8f5d70ef24fb4f6e3e6fd7494d214f914870f23f
    Henry Xia authored and facebook-github-bot committed Nov 7, 2019
    Configuration menu
    Copy the full SHA
    1da2c0e View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2019

  1. Exponential Moving Average Model Hook (#193)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#193
    
    Added a hook to compute the model ema. For test phases, it updates the model state to the ema state.
    It can store its state on the cpu to save memory, or on gpu to save time.
    
    Added a param in the flow trainers, ema_decay. If this is specified, the hook is plugged in. The hook uses the same device as used for training (to avoid adding another param). I'm not sure how we should be handling hook configurations.
    
    Reviewed By: vreis
    
    Differential Revision: D18375365
    
    fbshipit-source-id: 7bb90d3f3270dbb10e8b24c9d7dcdeb435d3e932
    mannatsingh authored and facebook-github-bot committed Nov 8, 2019
    Configuration menu
    Copy the full SHA
    84a1332 View commit details
    Browse the repository at this point in the history
  2. Make state functions for ClassyHook consistent (#195)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#195
    
    `ClassyHook`s are the only class which use a different name for the state get / set functions. Making the names consistent with everywhere else.
    
    Reviewed By: vreis
    
    Differential Revision: D18398492
    
    fbshipit-source-id: aa206881a493fe6bea34b35120fc7d19603ebab4
    mannatsingh authored and facebook-github-bot committed Nov 8, 2019
    Configuration menu
    Copy the full SHA
    8cb181c View commit details
    Browse the repository at this point in the history
  3. Docstrings for set_classy_state and get_classy_state

    Summary: Pull Request resolved: facebookresearch/ClassyVision#196
    
    Reviewed By: vreis
    
    Differential Revision: D18402346
    
    fbshipit-source-id: d476ff9405d54d701ba87b738fbd6d2b3bcaee89
    mannatsingh authored and facebook-github-bot committed Nov 8, 2019
    Configuration menu
    Copy the full SHA
    89b8846 View commit details
    Browse the repository at this point in the history
  4. Add logging statements to hooks (#194)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#194
    
    Added log statements to the tensorboard, fblearner plot and checkpoint hooks to give us a better idea of where we're spending time during training.
    
    Reviewed By: vreis
    
    Differential Revision: D18397576
    
    fbshipit-source-id: 4daa805f7fd4c646ad36a9c64dda7abc9b448880
    mannatsingh authored and facebook-github-bot committed Nov 8, 2019
    Configuration menu
    Copy the full SHA
    1c130fc View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2019

  1. Rename and add docstrings for the synthetic datasets (#197)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#197
    
    Renamed `Synthetic{Image, Video}ClassificationDataset` to `Synthetic{Image, Video}Dataset` and added docstrings.
    
    Reviewed By: vreis
    
    Differential Revision: D18404212
    
    fbshipit-source-id: 76b0f108199867cd20cb2e68d0fc9a6d4c2952ae
    mannatsingh authored and facebook-github-bot committed Nov 11, 2019
    Configuration menu
    Copy the full SHA
    c5b3e32 View commit details
    Browse the repository at this point in the history
  2. Remove ClassyModel.validate (#202)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#202
    
    This method is not being called anywhere, and we're requiring people to
    implement it when they inherit from ClassyModel. Kill it.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18427652
    
    fbshipit-source-id: 75cd3ef2a5c213544367cf350078c497f6f17f86
    vreis authored and facebook-github-bot committed Nov 11, 2019
    Configuration menu
    Copy the full SHA
    a319f8a View commit details
    Browse the repository at this point in the history
  3. add video_rescale transform for testing videos (#200)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#200
    
    - For OSS, we use pyav video backend. It is different from video_reader backend in that it can not spatially resize videos during video decoding.
    
    Therefore, for testing video, we need to resize it first before doing Fully-Convolutional Network (FCN) style evaluation. To do this, we introduce a `size` argument for default test video transform `video_default_no_augment`.
    
    With this diff, the users do not need to resize the video datasets ahead of model training.
    
    - Simplify name of existing json configs related to video classification.
    
    Reviewed By: vreis
    
    Differential Revision: D18409505
    
    fbshipit-source-id: 5ba03c31533e120240a248ccb6517dcf2e60aa6e
    stephenyan1231 authored and facebook-github-bot committed Nov 11, 2019
    Configuration menu
    Copy the full SHA
    0cef890 View commit details
    Browse the repository at this point in the history
  4. Expose audio channels through kinetics400 dataset (#198)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#198
    
    allows user to set the number of audio channels through the config
    
    Reviewed By: aadcock
    
    Differential Revision: D18406621
    
    fbshipit-source-id: cdb19b7b7a8bfa6f2d5723087b0b5a8a1b029112
    Henry Xia authored and facebook-github-bot committed Nov 11, 2019
    Configuration menu
    Copy the full SHA
    05973b9 View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2019

  1. Convert the optimizer property to a regular attribute (#199)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#199
    
    This is something which has been irritating me for a while, but we need to convert this to support AMP / LARS
    
    Reviewed By: vreis
    
    Differential Revision: D18408972
    
    fbshipit-source-id: b2468759158e6cf5d5f888553be8f0b5034a1238
    mannatsingh authored and facebook-github-bot committed Nov 12, 2019
    Configuration menu
    Copy the full SHA
    54c6a3e View commit details
    Browse the repository at this point in the history
  2. Pin torchvision to 0.4.2 (#207)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#207
    
    We were relying on nightly builds of torchvision because of some video patches
    Zhicheng landed. Move to torchvision 0.4.2 now that it's released.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18450381
    
    fbshipit-source-id: c8ebe875266cdadf4b30c35244276e161bdff327
    vreis authored and facebook-github-bot committed Nov 12, 2019
    Configuration menu
    Copy the full SHA
    9dfd962 View commit details
    Browse the repository at this point in the history
  3. Remove get_available_splits (#33)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#33
    
    Pull Request resolved: facebookresearch/ClassyVision#204
    
    Remove get_available_splits. It's only used in one disabled test currently and we want to slim down the API in advance of OSS.
    
    Reviewed By: vreis
    
    Differential Revision: D18404408
    
    fbshipit-source-id: e42ae52189f881872a1718b8edbda0ae116d6b64
    Aaron Adcock authored and facebook-github-bot committed Nov 12, 2019
    Configuration menu
    Copy the full SHA
    fefdcc2 View commit details
    Browse the repository at this point in the history
  4. json config for fine-tuning i3d models (#203)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#203
    
    - Add two json configs for fine-tuning I3D models on Kinetics400
    
    Reviewed By: vreis
    
    Differential Revision: D18409954
    
    fbshipit-source-id: a5789251d4fa154972b3c39c1a3c3dfd30e8c1ee
    stephenyan1231 authored and facebook-github-bot committed Nov 12, 2019
    Configuration menu
    Copy the full SHA
    7e644c9 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2019

  1. Internally datasets use split, externally tasks use phase_type (in ["…

    …train", "test"]) (#209)
    
    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#209
    
    Pull Request resolved: fairinternal/ClassyVision#36
    
    We actually have two separate concepts in our code, but they are currently named similarly. This diff makes an attempt to separate the concepts into two different terms:
    
    phase_type: Used by task to determine the type of phase being currently run
    split: Used by dataset to specify a subset (split) of the data
    
    One concept is a dataset split. It should be internal to a dataset and defines a section of a cohesive piece of data (for example, a dataset might be split into 10 sections and cross-validation used for training.
    
    The second concept is that of phase type. As we train with the classification task, we alternate between train and test phases. In training we need to store the auto-grad information...but during testing all we need to do is a forward pass and we often use a different data set for testing.
    
    They are entangled because the "test phase" often uses the "test split" (or "train phase" / "train split"), but this is not required and many datasets use different settings (imagenet has a standard practice of using the "val split" for the test phase).
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18455247
    
    fbshipit-source-id: ce770c94addebc7977814d62287a3b9dcc5c5f48
    Aaron Adcock authored and facebook-github-bot committed Nov 14, 2019
    Configuration menu
    Copy the full SHA
    a58fa0a View commit details
    Browse the repository at this point in the history
  2. Classy Vision + PET example script

    Summary:
    Example (or rather proof-of-concept) of running classy vision with torchelastic.
    
    Does the following:
    1. Renames `ClassyElasticTrainer`  -> `ElasticTrainer`
    2. Moves `ElasticTrainer` from fb directory to oss
    3. Moves `ClassyElasticState` into an inner class of `ElasticTrainer` (no one else outside of elastic trainer should be using classy elastic state => this is the point of integration of classy into pet, classy users just have to swap out `DistributedTrainer` with `ElasticTrainer` and not worry about any details - see `examples/main.py`)
    4. Removes `state_utils.py` in favor of `torchelastic.distributed` (it was duplicate code anyways).
    5. Renames `classy_elastic_state_test.py` to `elastic_trainer_test.py` (once both projects oss, we will move this test into `classy_vision/tests` so that it can run in both sandcastle and circleci)
    6. Implements a `main.py` script that demonstrates using classy vision with torchelastic outside of fb.
    
    NOTE: classy_vision.trainer does not import ElasticTrainer by default. Users will have to explicitly add the import statement: `from classy_vision.trainer.elastic_trainer import ElasticTrainer`. This is temporary to keep CV's dependency to torchelastic "soft" eventually we should add `ElasticTrainer` to the `classy_vision/trainer/__init__.py` so that users need only to add: `import classy_vision.trainer` to get `ElasticTrainer` in the scope.
    
    Reviewed By: vreis
    
    Differential Revision: D18447046
    
    fbshipit-source-id: ef73516402d31f45ea9efbdd9d98e6dc953eb489
    Kiuk Chung authored and facebook-github-bot committed Nov 14, 2019
    Configuration menu
    Copy the full SHA
    c845133 View commit details
    Browse the repository at this point in the history
  3. add FullyConvolutionalLinearHead to classy_vision.heads (#213)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#213
    
    `FullyConvolutionalLinearHead` head is the most common type of head used in video model. Expose it in `classy_vision.heads`.  We will later use `from classy_vision.heads import FullyConvolutionalLinearHead` in video classification tutorial.
    
    Reviewed By: jguerin-fb
    
    Differential Revision: D18500549
    
    fbshipit-source-id: eb5c676f983b0bcc04038a053b6bf8494407d695
    stephenyan1231 authored and facebook-github-bot committed Nov 14, 2019
    Configuration menu
    Copy the full SHA
    710ba51 View commit details
    Browse the repository at this point in the history
  4. Docs for classy model (#210)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#210
    
    Pull Request resolved: fairinternal/ClassyVision#37
    
    Documentation for classy model. Also removed unused summarization call.
    
    Reviewed By: vreis
    
    Differential Revision: D18483451
    
    fbshipit-source-id: 7b6546ad7c94a709b7cc82a34f74be4b70dc67ef
    Aaron Adcock authored and facebook-github-bot committed Nov 14, 2019
    Configuration menu
    Copy the full SHA
    87597c5 View commit details
    Browse the repository at this point in the history
  5. Hydra integration (#208)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#208
    
    Add support for hydra based configs. If hydra is installed, the hydra parser is used, otherwise the original paring logic is used.
    
    Updated instances where we do `config.copy` to `copy.deepcopy(config)` since this is safer and was needed to use OmegaConf as the config directly (this doesn't work right now).
    
    The configs can be broken down into components. Examples in test plan.
    
    Reviewed By: vreis
    
    Differential Revision: D18432143
    
    fbshipit-source-id: 056224e325ca2264814f316ef2aa35d63586c336
    mannatsingh authored and facebook-github-bot committed Nov 14, 2019
    Configuration menu
    Copy the full SHA
    c408965 View commit details
    Browse the repository at this point in the history
  6. support conv1D in profiler (#212)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#212
    
    GloRe use graph convolution, which is implemented by using 1D conv. To profile its FLOPS, we extend profiler to support the FLOPS compute of `Conv1D` module.
    
    Reviewed By: mannatsingh
    
    Differential Revision: D18420819
    
    fbshipit-source-id: 206920e3ceedb374ee5d2e2a1aebd3bcaa6425ae
    stephenyan1231 authored and facebook-github-bot committed Nov 14, 2019
    Configuration menu
    Copy the full SHA
    94ae571 View commit details
    Browse the repository at this point in the history
  7. Add logo to our website (#216)

    Summary:
    Add the logo to our website
    Pull Request resolved: facebookresearch/ClassyVision#216
    
    Reviewed By: stephenyan1231
    
    Differential Revision: D18514017
    
    Pulled By: vreis
    
    fbshipit-source-id: ef0da4981319c9207acc296e3f177e1ce9965cb9
    vreis authored and facebook-github-bot committed Nov 14, 2019
    Configuration menu
    Copy the full SHA
    b116641 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2019

  1. Update readme (#217)

    Summary:
    Add logo and a few more nice things to the GitHub README page.
    Pull Request resolved: facebookresearch/ClassyVision#217
    
    Test Plan: Open https://github.com/vreis/ClassyVision/tree/update_readme see how it looks
    
    Differential Revision: D18519287
    
    Pulled By: vreis
    
    fbshipit-source-id: 76e0850114c77ca50cab6c7af2720f1319f1b848
    vreis authored and facebook-github-bot committed Nov 15, 2019
    Configuration menu
    Copy the full SHA
    04ebc5e View commit details
    Browse the repository at this point in the history
  2. Remove num_classes from ClassyModel constructor

    Summary: Pull Request resolved: facebookresearch/ClassyVision#201
    
    Reviewed By: kazhang
    
    Differential Revision: D18427200
    
    fbshipit-source-id: a6d26f369d2875e01612144274930b689b614afe
    vreis authored and facebook-github-bot committed Nov 15, 2019
    Configuration menu
    Copy the full SHA
    754da59 View commit details
    Browse the repository at this point in the history
  3. Rename docs folder to sphinx (#222)

    Summary:
    The docs name is used by GitHub pages
    Pull Request resolved: facebookresearch/ClassyVision#222
    
    Test Plan:
    cd sphinx
    make html
    open _build/html/index.html
    
    Differential Revision: D18538460
    
    Pulled By: vreis
    
    fbshipit-source-id: 6f2e4b52ee111c765ebfa3730ae758dafaea19a6
    vreis authored and facebook-github-bot committed Nov 15, 2019
    Configuration menu
    Copy the full SHA
    52e0181 View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2019

  1. eliminate usage of state.task.advance_to_next_phase in favor of state…

    ….advance_to_next_phase (#223)
    
    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#223
    
    Fixes the following error:
    
    ```
    Traceback (most recent call last):
      File "/mnt/xarfuse/uid-30088/06c5bf86-seed-e9bf7d05-40b3-4736-ab2b-d32e3cfe3a16-ns-4026533627/torch/multiprocessing/spawn.py", line 19, in _wrap
        fn(i, *args)
      File "/mnt/xarfuse/uid-30088/06c5bf86-seed-e9bf7d05-40b3-4736-ab2b-d32e3cfe3a16-ns-4026533627/fblearner/flow/projects/vision/classy_vision/train_elastic.py", line 294, in flow_trainer_entry
        run(local_rank, *args, **kwargs)
      File "/mnt/xarfuse/uid-30088/06c5bf86-seed-e9bf7d05-40b3-4736-ab2b-d32e3cfe3a16-ns-4026533627/fblearner/flow/projects/vision/classy_vision/train_elastic.py", line 254, in run
        trainer.train(task)
      File "/mnt/xarfuse/uid-30088/06c5bf86-seed-e9bf7d05-40b3-4736-ab2b-d32e3cfe3a16-ns-4026533627/classy_vision/trainer/elastic_trainer.py", line 86, in train
        torchelastic.train(self.elastic_coordinator, elastic_train_step, state)
      File "/mnt/xarfuse/uid-30088/06c5bf86-seed-e9bf7d05-40b3-4736-ab2b-d32e3cfe3a16-ns-4026533627/torchelastic/train_loop.py", line 108, in train
        state, worker_stats = train_step(state)
      File "/mnt/xarfuse/uid-30088/06c5bf86-seed-e9bf7d05-40b3-4736-ab2b-d32e3cfe3a16-ns-4026533627/classy_vision/trainer/elastic_trainer.py", line 82, in elastic_train_step
        return self._run_step(orig_state, local_variables, self.use_gpu)
      File "/mnt/xarfuse/uid-30088/06c5bf86-seed-e9bf7d05-40b3-4736-ab2b-d32e3cfe3a16-ns-4026533627/classy_vision/trainer/elastic_trainer.py", line 92, in _run_step
        if state.task.done_training() and state.task.advance_to_next_phase:
    AttributeError: 'ClassyUruTask' object has no attribute 'advance_to_next_phase'
    
    Semantic Traceback (most recent call last):
      File "fblearner/flow/projects/vision/classy_vision/train_elastic.py", line 395, in main
        return plugin_main(params, None)
      File "fblearner/flow/projects/vision/classy_vision/train_elastic.py", line 450, in plugin_main
        register_plugins=register_plugins,
      File "fblearner/flow/projects/vision/classy_vision/train_elastic.py", line 373, in launch_one_node
        raise e
      File "/mnt/xarfuse/uid-30088/06c5bf86-seed-e9bf7d05-40b3-4736-ab2b-d32e3cfe3a16-ns-4026533627/torch/multiprocessing/spawn.py", line 171, in spawn
        while not spawn_context.join():
      File "/mnt/xarfuse/uid-30088/06c5bf86-seed-e9bf7d05-40b3-4736-ab2b-d32e3cfe3a16-ns-4026533627/torch/multiprocessing/spawn.py", line 118, in join
        raise Exception(msg)
    ```
    
    Reviewed By: isunjin
    
    Differential Revision: D18540804
    
    fbshipit-source-id: 3da034c4e002307253f85b71da37a5749a4dc49a
    Kiuk Chung authored and facebook-github-bot committed Nov 16, 2019
    Configuration menu
    Copy the full SHA
    0081463 View commit details
    Browse the repository at this point in the history
  2. Add tutorials to website

    Summary: Pull Request resolved: facebookresearch/ClassyVision#224
    
    Differential Revision: D18543396
    
    Pulled By: vreis
    
    fbshipit-source-id: 0949a260c5913b21b08a39e91506f54c09862f92
    vreis authored and facebook-github-bot committed Nov 16, 2019
    Configuration menu
    Copy the full SHA
    ecc5fe1 View commit details
    Browse the repository at this point in the history
  3. Improve setup.py

    Summary: Pull Request resolved: facebookresearch/ClassyVision#221
    
    Test Plan: .
    
    Differential Revision: D18533056
    
    Pulled By: vreis
    
    fbshipit-source-id: 889d0cc6b0c99f17d11a7b38391fb99754e4dc4a
    vreis authored and facebook-github-bot committed Nov 16, 2019
    Configuration menu
    Copy the full SHA
    35e30f8 View commit details
    Browse the repository at this point in the history
  4. Improve content for index page

    Summary: Pull Request resolved: facebookresearch/ClassyVision#225
    
    Differential Revision: D18555420
    
    Pulled By: vreis
    
    fbshipit-source-id: b2cf28174c0cead83c7fab757b195e100bea2c05
    vreis authored and facebook-github-bot committed Nov 16, 2019
    Configuration menu
    Copy the full SHA
    7eeaad4 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2019

  1. Getting started tutorial

    Summary: Pull Request resolved: facebookresearch/ClassyVision#226
    
    Differential Revision: D18556697
    
    Pulled By: vreis
    
    fbshipit-source-id: cc4751be0ef64b96c414dc326a20ff041f7a7024
    vreis authored and facebook-github-bot committed Nov 17, 2019
    Configuration menu
    Copy the full SHA
    0361a80 View commit details
    Browse the repository at this point in the history
  2. Add typehints and defaults to SGD optimizer (#227)

    Summary:
    This makes the tutorials nicer to write.
    Pull Request resolved: facebookresearch/ClassyVision#227
    
    Differential Revision: D18558000
    
    Pulled By: vreis
    
    fbshipit-source-id: ed9ed53feb25504224d9f8f1cf82489c6382e830
    vreis authored and facebook-github-bot committed Nov 17, 2019
    Configuration menu
    Copy the full SHA
    25aa25f View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2019

  1. Trainer Docs (#211)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#211
    
    Pull Request resolved: fairinternal/ClassyVision#38
    
    Docs for our Classy OSS Trainers, also added type hints
    
    Reviewed By: vreis
    
    Differential Revision: D18496512
    
    fbshipit-source-id: 40095abfc9db54b0c129de9dff585cbe68fd5d3e
    Aaron Adcock authored and facebook-github-bot committed Nov 18, 2019
    Configuration menu
    Copy the full SHA
    d72541d View commit details
    Browse the repository at this point in the history
  2. Make classy_train.py easier to use (#184)

    Summary:
    Fixes a few small issues I found while invoking classy_train.py manually.
    The --config_file and --device arguments were required, but gave cryptic error messages
    when they were missing. Mark config_file as required and add good defaults
    for device.
    
    Pull Request resolved: facebookresearch/ClassyVision#184
    
    Test Plan: .
    
    Reviewed By: aadcock
    
    Differential Revision: D18364662
    
    Pulled By: vreis
    
    fbshipit-source-id: 735f4156553754ac5bb9705084184fb8fe116724
    vreis authored and facebook-github-bot committed Nov 18, 2019
    Configuration menu
    Copy the full SHA
    30e39f1 View commit details
    Browse the repository at this point in the history
  3. LR hooks should capture LR on update (#214)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#214
    
    Hooks should capture LR `on_update` to ensure correct LR is logged.
    
    Reviewed By: vreis
    
    Differential Revision: D18509631
    
    fbshipit-source-id: 19af9e292d0171501c20eeb12cc09338262e9898
    lauragustafson authored and facebook-github-bot committed Nov 18, 2019
    Configuration menu
    Copy the full SHA
    40fc0f0 View commit details
    Browse the repository at this point in the history
  4. ClassyRandomClipSampler and ClassyUniformClipSampler (#218)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#218
    
    `num_samples` argument is useful to limit the number of training samples we use from the dataset. But it is not effective for current video datasets such as `UCF101Dataset`.
    
    We extend TorchVision `RandomClipSampler` and `UniformClipSampler` to support `num_samples` argument.
    
    Reviewed By: aadcock
    
    Differential Revision: D18523531
    
    fbshipit-source-id: 39bd64762c6029ad84569d0b77d89460eb064837
    stephenyan1231 authored and facebook-github-bot committed Nov 18, 2019
    Configuration menu
    Copy the full SHA
    bd508ca View commit details
    Browse the repository at this point in the history
  5. docs for ClassyTransform (#219)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#219
    
    Docs for OSS `ClassyTransform` class and other related classes.
    
    Reviewed By: aadcock
    
    Differential Revision: D18525226
    
    fbshipit-source-id: 82181dfd761d8c7634f4961f1e7b7402c9f17ea2
    stephenyan1231 authored and facebook-github-bot committed Nov 18, 2019
    Configuration menu
    Copy the full SHA
    e03f433 View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2019

  1. docs for ClassyHook (#231)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#231
    
    Docs for OSS `ClassyHook` class and other related classes.
    
    Reviewed By: vreis
    
    Differential Revision: D18574268
    
    fbshipit-source-id: 85ec8cd96a6868244ca082e1c7a192cd6f130878
    stephenyan1231 authored and facebook-github-bot committed Nov 19, 2019
    Configuration menu
    Copy the full SHA
    c4eab88 View commit details
    Browse the repository at this point in the history
  2. video classification tutorial

    Summary:
    This ipython notebook presents a tutorial on how to train a video classification model from scratch.
    It focuses on demonstrating how to build various components in ClassyVision, such as dataset, model, and optimizer.
    It trains a R3D-18 model on UCF-101 dataset for a short time.
    
    Tutorial style has been made to be consistent with existing `fine_tuning.ipynb` tutorial.
    
    Reviewed By: vreis
    
    Differential Revision: D18524154
    
    fbshipit-source-id: 27446166ee89fed9e8f05c01c51dc445c7d0815a
    stephenyan1231 authored and facebook-github-bot committed Nov 19, 2019
    Configuration menu
    Copy the full SHA
    1169912 View commit details
    Browse the repository at this point in the history
  3. Classification task docs (#228)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#228
    
    Pull Request resolved: fairinternal/ClassyVision#39
    
    Docs for classification task
    
    Reviewed By: vreis
    
    Differential Revision: D18567786
    
    fbshipit-source-id: 006e3e5ef17bc5fea8c0e575960f9ba27a31e59f
    Aaron Adcock authored and facebook-github-bot committed Nov 19, 2019
    Configuration menu
    Copy the full SHA
    927ad38 View commit details
    Browse the repository at this point in the history
  4. Make template project train faster (#233)

    Summary:
    The existing code was too slow to train on CPUs. Make a trivial linear
    model instead.
    Pull Request resolved: facebookresearch/ClassyVision#233
    
    Differential Revision: D18583148
    
    Pulled By: vreis
    
    fbshipit-source-id: 43b14c5eb8eadebe1d90f03909d0e44e2c713956
    vreis authored and facebook-github-bot committed Nov 19, 2019
    Configuration menu
    Copy the full SHA
    fb23190 View commit details
    Browse the repository at this point in the history
  5. Add docs for transforms and param_schedulers to website (#232)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#232
    
    Added .rst for transforms and param_schedulers to sphinx
    
    Reviewed By: vreis
    
    Differential Revision: D18578973
    
    fbshipit-source-id: b03f1d79f1b0e3a9ec806d1c316702ab5fb51cf0
    simran2905 authored and facebook-github-bot committed Nov 19, 2019
    Configuration menu
    Copy the full SHA
    03a46aa View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2019

  1. Doc Changes in Dataset (#236)

    Summary:
    Pull Request resolved: facebookresearch/ClassyVision#236
    
    1. Make `__init__` visible for all classes
    2. Fix Small bugs in docs for dataset
    
    Reviewed By: vreis
    
    Differential Revision: D18608520
    
    fbshipit-source-id: 3c23c4a28091076d9805cf2099d7988055fd0a10
    simran2905 authored and facebook-github-bot committed Nov 20, 2019
    Configuration menu
    Copy the full SHA
    6d436dd View commit details
    Browse the repository at this point in the history
  2. Fix video tutorial (#237)

    Summary:
    The video tutorial was using an internal kernel, which can't be
    converted to HTML -- update it to a regular Jupyter notebook instead.
    
    Also add the tutorial to the json file so that it gets converted by the
    script that generates the website.
    Pull Request resolved: facebookresearch/ClassyVision#237
    
    Differential Revision: D18610984
    
    Pulled By: vreis
    
    fbshipit-source-id: 8b90bcc06c7bbe964c72c0c06c49e5ccb855fe97
    vreis authored and facebook-github-bot committed Nov 20, 2019
    Configuration menu
    Copy the full SHA
    64fae67 View commit details
    Browse the repository at this point in the history
  3. Add ClassyModel.from_checkpoint API (#235)

    Summary:
    Adds an API to load a model from a checkpoint. This will make the
    tutorials nicer/cleaner.
    Pull Request resolved: facebookresearch/ClassyVision#235
    
    Test Plan: New unit test
    
    Differential Revision: D18609462
    
    Pulled By: vreis
    
    fbshipit-source-id: 9a498495fbe1eeef500f79525979c7c959e0a319
    vreis authored and facebook-github-bot committed Nov 20, 2019
    Configuration menu
    Copy the full SHA
    80b28ef View commit details
    Browse the repository at this point in the history
  4. Add distributed_backend option to classy_train.py (#238)

    Summary:
    I'm hitting hangs on my mac when launch classy_train.py lots of times.
    Sometimes it also fails to allocate a port, which is completely
    pointless since I'm not doing distributed training. Allow users to
    control what trainer to use via command line flag.
    Pull Request resolved: facebookresearch/ClassyVision#238
    
    Differential Revision: D18620410
    
    Pulled By: vreis
    
    fbshipit-source-id: f71671dda33bec1c3ce9b44f86897a128d62975a
    vreis authored and facebook-github-bot committed Nov 20, 2019
    Configuration menu
    Copy the full SHA
    84f031c View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2019

  1. Add torchvision classy dataset

    Differential Revision: D18403673
    
    fbshipit-source-id: 5b99eeed56b354fb8697dcf5eb23fdcb20a7dba6
    Aaron Adcock authored and facebook-github-bot committed Nov 21, 2019
    Configuration menu
    Copy the full SHA
    1859669 View commit details
    Browse the repository at this point in the history
  2. Add classy OSS CIFAR (#35)

    Summary:
    Pull Request resolved: fairinternal/ClassyVision#35
    
    Pull Request resolved: facebookresearch/ClassyVision#206
    
    OSS Classy CIFAR. Simple wrapper around torchvision dataset. The classy dataset wrapper provides batching, transforms, shuffling, and restricting the size of the dataset.
    
    Side-effects: Changed the name of the fb internal classy vision dataset to fb_cifar* and changed all naming schemes to match this.
    
    I also added a unittest that relies on some of the torchvision testing utilities which are not packaged with torchvision...as such, I did this via a fbcode import.
    
    Differential Revision: D18429440
    
    fbshipit-source-id: f2a0bfbec7671c415871e40a18c8187aaf5251e8
    Aaron Adcock authored and facebook-github-bot committed Nov 21, 2019
    Configuration menu
    Copy the full SHA
    4a0d784 View commit details
    Browse the repository at this point in the history