-
Notifications
You must be signed in to change notification settings - Fork 279
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
Add classy OSS CIFAR #206
Commits on Sep 18, 2019
-
fbshipit-source-id: b4001a6fb460b8b35bc862a5564fad55d86f5bc3
Configuration menu - View commit details
-
Copy full SHA for f72250f - Browse repository at this point
Copy the full SHA f72250fView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 3713365 - Browse repository at this point
Copy the full SHA 3713365View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 454a295 - Browse repository at this point
Copy the full SHA 454a295View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 1455f44 - Browse repository at this point
Copy the full SHA 1455f44View commit details
Commits on Sep 19, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for dad3945 - Browse repository at this point
Copy the full SHA dad3945View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 47faf36 - Browse repository at this point
Copy the full SHA 47faf36View commit details
Commits on Sep 20, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 0ff6a28 - Browse repository at this point
Copy the full SHA 0ff6a28View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 86b0193 - Browse repository at this point
Copy the full SHA 86b0193View commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#4 Needed for the OSS release Reviewed By: mannatsingh Differential Revision: D17504533 fbshipit-source-id: ea2d9c9579623bc8776f89493aaaad2542351802
Configuration menu - View commit details
-
Copy full SHA for 648266b - Browse repository at this point
Copy the full SHA 648266bView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 8509e03 - Browse repository at this point
Copy the full SHA 8509e03View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 03a728d - Browse repository at this point
Copy the full SHA 03a728dView commit details -
Summary: add an utility function `is_pos_int_list` Reviewed By: mannatsingh Differential Revision: D17496207 fbshipit-source-id: 8c3e22e290fc85728208bca55dd0b1cbe0aa29c1
Configuration menu - View commit details
-
Copy full SHA for 2263929 - Browse repository at this point
Copy the full SHA 2263929View commit details -
Reviewed By: vreis Differential Revision: D17472655 fbshipit-source-id: 087f2a3a7e66efa76723109eb41097c13ea8ef1b
Configuration menu - View commit details
-
Copy full SHA for 69a37c2 - Browse repository at this point
Copy the full SHA 69a37c2View commit details
Commits on Sep 21, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 90b8a2e - Browse repository at this point
Copy the full SHA 90b8a2eView commit details
Commits on Sep 23, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 5005b32 - Browse repository at this point
Copy the full SHA 5005b32View commit details
Commits on Sep 24, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 3ced20d - Browse repository at this point
Copy the full SHA 3ced20dView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 5863422 - Browse repository at this point
Copy the full SHA 5863422View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 7a3d731 - Browse repository at this point
Copy the full SHA 7a3d731View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 8d8038b - Browse repository at this point
Copy the full SHA 8d8038bView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 40429f3 - Browse repository at this point
Copy the full SHA 40429f3View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 64cb84c - Browse repository at this point
Copy the full SHA 64cb84cView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 0e8274b - Browse repository at this point
Copy the full SHA 0e8274bView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for a829687 - Browse repository at this point
Copy the full SHA a829687View commit details
Commits on Sep 26, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for bcbf717 - Browse repository at this point
Copy the full SHA bcbf717View commit details
Commits on Sep 27, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 48a8f25 - Browse repository at this point
Copy the full SHA 48a8f25View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 1d75e08 - Browse repository at this point
Copy the full SHA 1d75e08View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 5459c01 - Browse repository at this point
Copy the full SHA 5459c01View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for c5d91f0 - Browse repository at this point
Copy the full SHA c5d91f0View commit details
Commits on Sep 28, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for afa95d6 - Browse repository at this point
Copy the full SHA afa95d6View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 760a83c - Browse repository at this point
Copy the full SHA 760a83cView commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#27 Fixed classy vision head imports Reviewed By: vreis Differential Revision: D17635517 fbshipit-source-id: 0dd0eb73bb3d03cd442de35ba893d78a7a9180d5
Configuration menu - View commit details
-
Copy full SHA for 64f7846 - Browse repository at this point
Copy the full SHA 64f7846View commit details
Commits on Sep 30, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for cb61591 - Browse repository at this point
Copy the full SHA cb61591View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for c194872 - Browse repository at this point
Copy the full SHA c194872View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 90460b0 - Browse repository at this point
Copy the full SHA 90460b0View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 070d63d - Browse repository at this point
Copy the full SHA 070d63dView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 37691b0 - Browse repository at this point
Copy the full SHA 37691b0View commit details
Commits on Oct 1, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 967f437 - Browse repository at this point
Copy the full SHA 967f437View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 750b447 - Browse repository at this point
Copy the full SHA 750b447View commit details
Commits on Oct 2, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 5398a4c - Browse repository at this point
Copy the full SHA 5398a4cView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 3761b8b - Browse repository at this point
Copy the full SHA 3761b8bView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for b0f5d52 - Browse repository at this point
Copy the full SHA b0f5d52View commit details
Commits on Oct 4, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 55be5e1 - Browse repository at this point
Copy the full SHA 55be5e1View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 6e5b488 - Browse repository at this point
Copy the full SHA 6e5b488View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for a6aaf5b - Browse repository at this point
Copy the full SHA a6aaf5bView commit details
Commits on Oct 5, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 0068ff5 - Browse repository at this point
Copy the full SHA 0068ff5View commit details
Commits on Oct 6, 2019
-
ProdResNeXt model to support dict input
Summary: Pull Request resolved: facebookresearch/ClassyVision#35 Reviewed By: vreis Differential Revision: D17708861 fbshipit-source-id: 8c9579de7af35efb63c2be7eca6e37b57ce90e48
Configuration menu - View commit details
-
Copy full SHA for 29f31df - Browse repository at this point
Copy the full SHA 29f31dfView commit details
Commits on Oct 7, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 044ec92 - Browse repository at this point
Copy the full SHA 044ec92View commit details
Commits on Oct 9, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for da83b00 - Browse repository at this point
Copy the full SHA da83b00View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 4ae3b4b - Browse repository at this point
Copy the full SHA 4ae3b4bView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 67414b5 - Browse repository at this point
Copy the full SHA 67414b5View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 58e6ed5 - Browse repository at this point
Copy the full SHA 58e6ed5View commit details
Commits on Oct 10, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for d0ba27e - Browse repository at this point
Copy the full SHA d0ba27eView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for e8cbf9f - Browse repository at this point
Copy the full SHA e8cbf9fView commit details
Commits on Oct 11, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for bc6109f - Browse repository at this point
Copy the full SHA bc6109fView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 64bec06 - Browse repository at this point
Copy the full SHA 64bec06View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 40d6d4c - Browse repository at this point
Copy the full SHA 40d6d4cView commit details
Commits on Oct 14, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 76df9b4 - Browse repository at this point
Copy the full SHA 76df9b4View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 043c514 - Browse repository at this point
Copy the full SHA 043c514View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 9cf2250 - Browse repository at this point
Copy the full SHA 9cf2250View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 1b64f26 - Browse repository at this point
Copy the full SHA 1b64f26View commit details
Commits on Oct 15, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 8d47bca - Browse repository at this point
Copy the full SHA 8d47bcaView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 673ff73 - Browse repository at this point
Copy the full SHA 673ff73View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for e535aa9 - Browse repository at this point
Copy the full SHA e535aa9View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 8a6afeb - Browse repository at this point
Copy the full SHA 8a6afebView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 68906b4 - Browse repository at this point
Copy the full SHA 68906b4View commit details
Commits on Oct 16, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 125024a - Browse repository at this point
Copy the full SHA 125024aView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for c31f155 - Browse repository at this point
Copy the full SHA c31f155View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 82a533c - Browse repository at this point
Copy the full SHA 82a533cView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 43b488f - Browse repository at this point
Copy the full SHA 43b488fView commit details
Commits on Oct 17, 2019
-
Clean up https://fwdproxy:8080 references.
Summary: Correct Fwdproxy definition. Reviewed By: dddmello Differential Revision: D17917027 fbshipit-source-id: 1026007f28851b3ec316f3230dce8c2d84d7b8cb
Configuration menu - View commit details
-
Copy full SHA for fb348b8 - Browse repository at this point
Copy the full SHA fb348b8View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 1f8755f - Browse repository at this point
Copy the full SHA 1f8755fView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 79c4194 - Browse repository at this point
Copy the full SHA 79c4194View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 5a6b14e - Browse repository at this point
Copy the full SHA 5a6b14eView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for b194898 - Browse repository at this point
Copy the full SHA b194898View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 27e1a2a - Browse repository at this point
Copy the full SHA 27e1a2aView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 444ae0a - Browse repository at this point
Copy the full SHA 444ae0aView commit details
Commits on Oct 18, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 9e0da45 - Browse repository at this point
Copy the full SHA 9e0da45View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for ed4d00b - Browse repository at this point
Copy the full SHA ed4d00bView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for b8d22f3 - Browse repository at this point
Copy the full SHA b8d22f3View commit details -
rename ClassyVisionTask to ClassyTask
Summary: Pull Request resolved: facebookresearch/ClassyVision#78 Reviewed By: vreis Differential Revision: D18018163 fbshipit-source-id: 8542cd8d1162c2f5e7f9691b0a3ae3e50a4720fd
Configuration menu - View commit details
-
Copy full SHA for cda2eb0 - Browse repository at this point
Copy the full SHA cda2eb0View commit details
Commits on Oct 19, 2019
-
rename ClassyVisionHead to ClassyHead
Summary: Pull Request resolved: facebookresearch/ClassyVision#79 Reviewed By: mannatsingh Differential Revision: D18019618 fbshipit-source-id: 9bb802e8ba3002b0ab4ccd1a4c944dab3d6b9466
Configuration menu - View commit details
-
Copy full SHA for 7cb61e2 - Browse repository at this point
Copy the full SHA 7cb61e2View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 9b72e12 - Browse repository at this point
Copy the full SHA 9b72e12View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 1587653 - Browse repository at this point
Copy the full SHA 1587653View commit details -
rename ClassyVisionModel to ClassyModel
Summary: Pull Request resolved: facebookresearch/ClassyVision#80 Reviewed By: vreis Differential Revision: D18020540 fbshipit-source-id: 75a086597365ce00d01ccaabc394677d3bc30d3b
Configuration menu - View commit details
-
Copy full SHA for f55c5b3 - Browse repository at this point
Copy the full SHA f55c5b3View commit details
Commits on Oct 21, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 0406893 - Browse repository at this point
Copy the full SHA 0406893View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for decd59a - Browse repository at this point
Copy the full SHA decd59aView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 09c8341 - Browse repository at this point
Copy the full SHA 09c8341View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for bdff5bd - Browse repository at this point
Copy the full SHA bdff5bdView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 89614b0 - Browse repository at this point
Copy the full SHA 89614b0View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for f2d8d74 - Browse repository at this point
Copy the full SHA f2d8d74View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 9e3b58e - Browse repository at this point
Copy the full SHA 9e3b58eView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 3f13fb5 - Browse repository at this point
Copy the full SHA 3f13fb5View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 70274f9 - Browse repository at this point
Copy the full SHA 70274f9View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for b153bbf - Browse repository at this point
Copy the full SHA b153bbfView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 2f9dddc - Browse repository at this point
Copy the full SHA 2f9dddcView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for acea144 - Browse repository at this point
Copy the full SHA acea144View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for c43120b - Browse repository at this point
Copy the full SHA c43120bView commit details
Commits on Oct 22, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 0811e28 - Browse repository at this point
Copy the full SHA 0811e28View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 03741a8 - Browse repository at this point
Copy the full SHA 03741a8View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 69d36da - Browse repository at this point
Copy the full SHA 69d36daView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 11c5c25 - Browse repository at this point
Copy the full SHA 11c5c25View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 6206058 - Browse repository at this point
Copy the full SHA 6206058View commit details
Commits on Oct 23, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 8779056 - Browse repository at this point
Copy the full SHA 8779056View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 7890e8c - Browse repository at this point
Copy the full SHA 7890e8cView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for af1497c - Browse repository at this point
Copy the full SHA af1497cView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 8fafac8 - Browse repository at this point
Copy the full SHA 8fafac8View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for ba65951 - Browse repository at this point
Copy the full SHA ba65951View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for ce49b72 - Browse repository at this point
Copy the full SHA ce49b72View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 7ec93d0 - Browse repository at this point
Copy the full SHA 7ec93d0View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for a909058 - Browse repository at this point
Copy the full SHA a909058View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 97a7a67 - Browse repository at this point
Copy the full SHA 97a7a67View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 14d0957 - Browse repository at this point
Copy the full SHA 14d0957View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 53710d4 - Browse repository at this point
Copy the full SHA 53710d4View commit details
Commits on Oct 24, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 45ee71b - Browse repository at this point
Copy the full SHA 45ee71bView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for afa316a - Browse repository at this point
Copy the full SHA afa316aView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 5bbd7f3 - Browse repository at this point
Copy the full SHA 5bbd7f3View commit details -
Convert input args to dict upon checkpointing
Summary: Pull Request resolved: facebookresearch/ClassyVision#107 Reviewed By: vreis Differential Revision: D18086942 fbshipit-source-id: 8cb50b7d5ffc7c6cb74109c233ea2f91aa8a6c14
Configuration menu - View commit details
-
Copy full SHA for 3280111 - Browse repository at this point
Copy the full SHA 3280111View commit details
Commits on Oct 25, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 8f6bd57 - Browse repository at this point
Copy the full SHA 8f6bd57View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for dbe3218 - Browse repository at this point
Copy the full SHA dbe3218View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for e120a05 - Browse repository at this point
Copy the full SHA e120a05View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 49f5644 - Browse repository at this point
Copy the full SHA 49f5644View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 692f57e - Browse repository at this point
Copy the full SHA 692f57eView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 3b40587 - Browse repository at this point
Copy the full SHA 3b40587View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for d83d357 - Browse repository at this point
Copy the full SHA d83d357View commit details
Commits on Oct 26, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for a3ad5a4 - Browse repository at this point
Copy the full SHA a3ad5a4View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 91f63fa - Browse repository at this point
Copy the full SHA 91f63faView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for c9d54d8 - Browse repository at this point
Copy the full SHA c9d54d8View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 8746e31 - Browse repository at this point
Copy the full SHA 8746e31View commit details
Commits on Oct 27, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for c3fd385 - Browse repository at this point
Copy the full SHA c3fd385View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for afd5c7a - Browse repository at this point
Copy the full SHA afd5c7aView commit details
Commits on Oct 28, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for a92ddcb - Browse repository at this point
Copy the full SHA a92ddcbView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 397918c - Browse repository at this point
Copy the full SHA 397918cView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for df18a40 - Browse repository at this point
Copy the full SHA df18a40View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 430fc78 - Browse repository at this point
Copy the full SHA 430fc78View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 257b3b6 - Browse repository at this point
Copy the full SHA 257b3b6View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for c31cfc8 - Browse repository at this point
Copy the full SHA c31cfc8View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 91c4028 - Browse repository at this point
Copy the full SHA 91c4028View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for a1ef6a2 - Browse repository at this point
Copy the full SHA a1ef6a2View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 3db44c8 - Browse repository at this point
Copy the full SHA 3db44c8View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 42feb48 - Browse repository at this point
Copy the full SHA 42feb48View commit details
Commits on Oct 29, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 294b867 - Browse repository at this point
Copy the full SHA 294b867View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 2d61d3b - Browse repository at this point
Copy the full SHA 2d61d3bView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 564969f - Browse repository at this point
Copy the full SHA 564969fView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 68d6333 - Browse repository at this point
Copy the full SHA 68d6333View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 185f641 - Browse repository at this point
Copy the full SHA 185f641View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for ac04851 - Browse repository at this point
Copy the full SHA ac04851View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 13c12da - Browse repository at this point
Copy the full SHA 13c12daView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 0ce440b - Browse repository at this point
Copy the full SHA 0ce440bView commit details
Commits on Oct 30, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for b20176f - Browse repository at this point
Copy the full SHA b20176fView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 1eed4ac - Browse repository at this point
Copy the full SHA 1eed4acView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 1bd2306 - Browse repository at this point
Copy the full SHA 1bd2306View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 397c38a - Browse repository at this point
Copy the full SHA 397c38aView commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#154 Reviewed By: vreis Differential Revision: D18230827 fbshipit-source-id: 58d542e931bcba140ca4e8bc1415354a8b3929b0
Configuration menu - View commit details
-
Copy full SHA for 1cb331f - Browse repository at this point
Copy the full SHA 1cb331fView commit details
Commits on Oct 31, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 4a17368 - Browse repository at this point
Copy the full SHA 4a17368View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 97b3d28 - Browse repository at this point
Copy the full SHA 97b3d28View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for f218976 - Browse repository at this point
Copy the full SHA f218976View commit details
Commits on Nov 1, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 9530b84 - Browse repository at this point
Copy the full SHA 9530b84View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 06c51a0 - Browse repository at this point
Copy the full SHA 06c51a0View commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#163 As titled Reviewed By: vreis Differential Revision: D18275102 fbshipit-source-id: 3ee9c2517b30d3b121dbb151f4f8c318063daabd
Configuration menu - View commit details
-
Copy full SHA for 51b86e7 - Browse repository at this point
Copy the full SHA 51b86e7View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 91d8fc7 - Browse repository at this point
Copy the full SHA 91d8fc7View commit details -
Summary: Allows us to reference pytorch documentation Pull Request resolved: facebookresearch/ClassyVision#158 Differential Revision: D18273513 Pulled By: vreis fbshipit-source-id: d2cd6aa2b2196fb177a95836b321d9d3e94382e8
Configuration menu - View commit details
-
Copy full SHA for 72dfb50 - Browse repository at this point
Copy the full SHA 72dfb50View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 8b32376 - Browse repository at this point
Copy the full SHA 8b32376View commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#160 Differential Revision: D18274974 Pulled By: vreis fbshipit-source-id: e6f7549866c6a8d43df02968fa0c399d4ad0f70b
Configuration menu - View commit details
-
Copy full SHA for 461920c - Browse repository at this point
Copy the full SHA 461920cView commit details -
Documentation for classy_train.py
Summary: Pull Request resolved: facebookresearch/ClassyVision#166 Reviewed By: mannatsingh Differential Revision: D18278642 fbshipit-source-id: b99113daff1b986dbc1c7fb24263deaf897da291
Configuration menu - View commit details
-
Copy full SHA for 4a02e42 - Browse repository at this point
Copy the full SHA 4a02e42View commit details
Commits on Nov 2, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 13e5426 - Browse repository at this point
Copy the full SHA 13e5426View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 7aa2ab9 - Browse repository at this point
Copy the full SHA 7aa2ab9View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 0cf0d9f - Browse repository at this point
Copy the full SHA 0cf0d9fView commit details
Commits on Nov 4, 2019
-
Summary: Pull Request resolved: facebookresearch/ClassyVision#159 Reviewed By: vreis Differential Revision: D18274520 fbshipit-source-id: 4f9d7d6a6911ccd7ad3af544a3ae755ca8046e7c
Configuration menu - View commit details
-
Copy full SHA for 5044f39 - Browse repository at this point
Copy the full SHA 5044f39View commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#162 Reviewed By: vreis Differential Revision: D18274571 fbshipit-source-id: dc70f08502d72210287c9e1066bf81da6e181eec
Configuration menu - View commit details
-
Copy full SHA for 4af167d - Browse repository at this point
Copy the full SHA 4af167dView commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#164 Reviewed By: vreis Differential Revision: D18275769 fbshipit-source-id: 8e9f194de2f9edcfecd04d86fc2028d83fe5b0de
Configuration menu - View commit details
-
Copy full SHA for 37d579a - Browse repository at this point
Copy the full SHA 37d579aView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for e7ecd34 - Browse repository at this point
Copy the full SHA e7ecd34View commit details
Commits on Nov 5, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 2ee1a87 - Browse repository at this point
Copy the full SHA 2ee1a87View commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#175 Added an ISSUE_TEMPLATE folder. Reviewed By: vreis Differential Revision: D18312858 fbshipit-source-id: 174318572bb5b4c849367cf4c5d3f7b505b68b33
Configuration menu - View commit details
-
Copy full SHA for 3ef7ac6 - Browse repository at this point
Copy the full SHA 3ef7ac6View commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#174 Reviewed By: vreis Differential Revision: D18313194 fbshipit-source-id: be60535e7ca0cb16a71025849fba6cd509108f23
Configuration menu - View commit details
-
Copy full SHA for 5b66a1f - Browse repository at this point
Copy the full SHA 5b66a1fView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 4b9d5b9 - Browse repository at this point
Copy the full SHA 4b9d5b9View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 79d431a - Browse repository at this point
Copy the full SHA 79d431aView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for a999598 - Browse repository at this point
Copy the full SHA a999598View commit details -
Docstrings for ClassyOptimizer
Summary: Pull Request resolved: facebookresearch/ClassyVision#167 Reviewed By: vreis Differential Revision: D18280962 fbshipit-source-id: 0c37b3e72520e7566e1d0d9d69eeb3587fba7c95
Configuration menu - View commit details
-
Copy full SHA for 5ead1be - Browse repository at this point
Copy the full SHA 5ead1beView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for c66aca0 - Browse repository at this point
Copy the full SHA c66aca0View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 64e00ad - Browse repository at this point
Copy the full SHA 64e00adView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for be56d44 - Browse repository at this point
Copy the full SHA be56d44View commit details
Commits on Nov 6, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 2482238 - Browse repository at this point
Copy the full SHA 2482238View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 2faace5 - Browse repository at this point
Copy the full SHA 2faace5View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for aa63f46 - Browse repository at this point
Copy the full SHA aa63f46View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for a213776 - Browse repository at this point
Copy the full SHA a213776View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 89e3558 - Browse repository at this point
Copy the full SHA 89e3558View commit details
Commits on Nov 7, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for ca31a99 - Browse repository at this point
Copy the full SHA ca31a99View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 01b6829 - Browse repository at this point
Copy the full SHA 01b6829View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 63b0da5 - Browse repository at this point
Copy the full SHA 63b0da5View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for bcea5c1 - Browse repository at this point
Copy the full SHA bcea5c1View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 15b3af3 - Browse repository at this point
Copy the full SHA 15b3af3View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 7a2d93e - Browse repository at this point
Copy the full SHA 7a2d93eView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for b11c3a3 - Browse repository at this point
Copy the full SHA b11c3a3View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for fe2e4ce - Browse repository at this point
Copy the full SHA fe2e4ceView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 00a9e3c - Browse repository at this point
Copy the full SHA 00a9e3cView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 7f66249 - Browse repository at this point
Copy the full SHA 7f66249View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 5277831 - Browse repository at this point
Copy the full SHA 5277831View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 1da2c0e - Browse repository at this point
Copy the full SHA 1da2c0eView commit details
Commits on Nov 8, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 84a1332 - Browse repository at this point
Copy the full SHA 84a1332View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 8cb181c - Browse repository at this point
Copy the full SHA 8cb181cView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 89b8846 - Browse repository at this point
Copy the full SHA 89b8846View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 1c130fc - Browse repository at this point
Copy the full SHA 1c130fcView commit details
Commits on Nov 11, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for c5b3e32 - Browse repository at this point
Copy the full SHA c5b3e32View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for a319f8a - Browse repository at this point
Copy the full SHA a319f8aView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 0cef890 - Browse repository at this point
Copy the full SHA 0cef890View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 05973b9 - Browse repository at this point
Copy the full SHA 05973b9View commit details
Commits on Nov 12, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 54c6a3e - Browse repository at this point
Copy the full SHA 54c6a3eView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 9dfd962 - Browse repository at this point
Copy the full SHA 9dfd962View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for fefdcc2 - Browse repository at this point
Copy the full SHA fefdcc2View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 7e644c9 - Browse repository at this point
Copy the full SHA 7e644c9View commit details
Commits on Nov 14, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for a58fa0a - Browse repository at this point
Copy the full SHA a58fa0aView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for c845133 - Browse repository at this point
Copy the full SHA c845133View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 710ba51 - Browse repository at this point
Copy the full SHA 710ba51View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 87597c5 - Browse repository at this point
Copy the full SHA 87597c5View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for c408965 - Browse repository at this point
Copy the full SHA c408965View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 94ae571 - Browse repository at this point
Copy the full SHA 94ae571View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for b116641 - Browse repository at this point
Copy the full SHA b116641View commit details
Commits on Nov 15, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 04ebc5e - Browse repository at this point
Copy the full SHA 04ebc5eView commit details -
Remove num_classes from ClassyModel constructor
Summary: Pull Request resolved: facebookresearch/ClassyVision#201 Reviewed By: kazhang Differential Revision: D18427200 fbshipit-source-id: a6d26f369d2875e01612144274930b689b614afe
Configuration menu - View commit details
-
Copy full SHA for 754da59 - Browse repository at this point
Copy the full SHA 754da59View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 52e0181 - Browse repository at this point
Copy the full SHA 52e0181View commit details
Commits on Nov 16, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 0081463 - Browse repository at this point
Copy the full SHA 0081463View commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#224 Differential Revision: D18543396 Pulled By: vreis fbshipit-source-id: 0949a260c5913b21b08a39e91506f54c09862f92
Configuration menu - View commit details
-
Copy full SHA for ecc5fe1 - Browse repository at this point
Copy the full SHA ecc5fe1View commit details -
Summary: Pull Request resolved: facebookresearch/ClassyVision#221 Test Plan: . Differential Revision: D18533056 Pulled By: vreis fbshipit-source-id: 889d0cc6b0c99f17d11a7b38391fb99754e4dc4a
Configuration menu - View commit details
-
Copy full SHA for 35e30f8 - Browse repository at this point
Copy the full SHA 35e30f8View commit details -
Improve content for index page
Summary: Pull Request resolved: facebookresearch/ClassyVision#225 Differential Revision: D18555420 Pulled By: vreis fbshipit-source-id: b2cf28174c0cead83c7fab757b195e100bea2c05
Configuration menu - View commit details
-
Copy full SHA for 7eeaad4 - Browse repository at this point
Copy the full SHA 7eeaad4View commit details
Commits on Nov 17, 2019
-
Summary: Pull Request resolved: facebookresearch/ClassyVision#226 Differential Revision: D18556697 Pulled By: vreis fbshipit-source-id: cc4751be0ef64b96c414dc326a20ff041f7a7024
Configuration menu - View commit details
-
Copy full SHA for 0361a80 - Browse repository at this point
Copy the full SHA 0361a80View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 25aa25f - Browse repository at this point
Copy the full SHA 25aa25fView commit details
Commits on Nov 18, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for d72541d - Browse repository at this point
Copy the full SHA d72541dView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 30e39f1 - Browse repository at this point
Copy the full SHA 30e39f1View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 40fc0f0 - Browse repository at this point
Copy the full SHA 40fc0f0View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for bd508ca - Browse repository at this point
Copy the full SHA bd508caView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for e03f433 - Browse repository at this point
Copy the full SHA e03f433View commit details
Commits on Nov 19, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for c4eab88 - Browse repository at this point
Copy the full SHA c4eab88View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 1169912 - Browse repository at this point
Copy the full SHA 1169912View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 927ad38 - Browse repository at this point
Copy the full SHA 927ad38View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for fb23190 - Browse repository at this point
Copy the full SHA fb23190View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 03a46aa - Browse repository at this point
Copy the full SHA 03a46aaView commit details
Commits on Nov 20, 2019
-
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
Configuration menu - View commit details
-
Copy full SHA for 6d436dd - Browse repository at this point
Copy the full SHA 6d436ddView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 64fae67 - Browse repository at this point
Copy the full SHA 64fae67View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 80b28ef - Browse repository at this point
Copy the full SHA 80b28efView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 84f031c - Browse repository at this point
Copy the full SHA 84f031cView commit details
Commits on Nov 21, 2019
-
Add torchvision classy dataset
Differential Revision: D18403673 fbshipit-source-id: 5b99eeed56b354fb8697dcf5eb23fdcb20a7dba6
Configuration menu - View commit details
-
Copy full SHA for 1859669 - Browse repository at this point
Copy the full SHA 1859669View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 4a0d784 - Browse repository at this point
Copy the full SHA 4a0d784View commit details