Skip to content

Fix clone_module with shared parameters.#176

Merged
seba-1511 merged 3 commits intomasterfrom
fix-clone-module
Aug 30, 2020
Merged

Fix clone_module with shared parameters.#176
seba-1511 merged 3 commits intomasterfrom
fix-clone-module

Conversation

@seba-1511
Copy link
Copy Markdown
Member

@seba-1511 seba-1511 commented Aug 30, 2020

Description

Fixes #174

This PR fixes clone_module when for submodules that share parameters.

Contribution Checklist

If your contribution modifies code in the core library (not docs, tests, or examples), please fill the following checklist.

  • My contribution modifies code in the main library.
  • My modifications are tested.
  • My modifications are documented.

Optional

If you make major changes to the core library, please run make alltests and copy-paste the content of alltests.txt below.

make[1]: Entering directory '/media/seba-1511/OCZ/Dropbox/Dev/l2l_learnables'
OMP_NUM_THREADS=1 \
MKL_NUM_THREADS=1 \
python -W ignore -m unittest discover -s 'tests' -p '*_test.py' -v
test_final_accuracy (integration.maml_omniglot_test.MAMLOmniglotIntegrationTests) ... ok
test_adaptation (unit.algorithms.gbml_test.TestGBMLgorithm) ... ok
test_allow_nograd (unit.algorithms.gbml_test.TestGBMLgorithm) ... Traceback (most recent call last):
  File "/media/seba-1511/OCZ/Dropbox/Dev/l2l_learnables/learn2learn/optim/parameter_update.py", line 124, in forward
    allow_unused=allow_unused,
  File "/home/seba-1511/anaconda3/lib/python3.7/site-packages/torch/autograd/__init__.py", line 157, in grad
    inputs, allow_unused)
RuntimeError: One of the differentiated Tensors does not require grad
ok
test_allow_unused (unit.algorithms.gbml_test.TestGBMLgorithm) ... ok
test_clone_module (unit.algorithms.gbml_test.TestGBMLgorithm) ... ok
test_graph_connection (unit.algorithms.gbml_test.TestGBMLgorithm) ... ok
test_adaptation (unit.algorithms.maml_test.TestMAMLAlgorithm) ... ok
test_allow_nograd (unit.algorithms.maml_test.TestMAMLAlgorithm) ... Traceback (most recent call last):
  File "/media/seba-1511/OCZ/Dropbox/Dev/l2l_learnables/learn2learn/algorithms/maml.py", line 163, in adapt
    allow_unused=allow_unused)
  File "/home/seba-1511/anaconda3/lib/python3.7/site-packages/torch/autograd/__init__.py", line 157, in grad
    inputs, allow_unused)
RuntimeError: One of the differentiated Tensors does not require grad
ok
test_allow_unused (unit.algorithms.maml_test.TestMAMLAlgorithm) ... ok
test_clone_module (unit.algorithms.maml_test.TestMAMLAlgorithm) ... ok
test_graph_connection (unit.algorithms.maml_test.TestMAMLAlgorithm) ... ok
test_module_shared_params (unit.algorithms.maml_test.TestMAMLAlgorithm) ... ok
test_adaptation (unit.algorithms.metasgd_test.TestMetaSGDAlgorithm) ... ok
test_clone_module (unit.algorithms.metasgd_test.TestMetaSGDAlgorithm) ... ok
test_graph_connection (unit.algorithms.metasgd_test.TestMetaSGDAlgorithm) ... ok
test_meta_lr (unit.algorithms.metasgd_test.TestMetaSGDAlgorithm) ... ok
test_data_labels_length (unit.data.metadataset_test.TestMetaDataset) ... ok
test_data_labels_values (unit.data.metadataset_test.TestMetaDataset) ... ok
test_data_length (unit.data.metadataset_test.TestMetaDataset) ... ok
test_fails_with_non_torch_dataset (unit.data.metadataset_test.TestMetaDataset) ... ok
test_get_item (unit.data.metadataset_test.TestMetaDataset) ... ok
test_labels_to_indices (unit.data.metadataset_test.TestMetaDataset) ... ok
test_dataloader (unit.data.task_dataset_test.TestTaskDataset) ... Files already downloaded and verified
Files already downloaded and verified
0 Meta Train Accuracy 0.38125000847503543
1 Meta Train Accuracy 0.4625000096857548
2 Meta Train Accuracy 0.4625000115483999
3 Meta Train Accuracy 0.5375000140629709
4 Meta Train Accuracy 0.5125000127591193
learn2learn: Maybe try with allow_nograd=True and/orallow_unused=True ?
learn2learn: Maybe try with allow_nograd=True and/or allow_unused=True ?
Files already downloaded and verified
Files already downloaded and verified
ok
test_infinite_tasks (unit.data.task_dataset_test.TestTaskDataset) ... ok
test_instanciation (unit.data.task_dataset_test.TestTaskDataset) ... ok
test_task_caching (unit.data.task_dataset_test.TestTaskDataset) ... ok
test_task_transforms (unit.data.task_dataset_test.TestTaskDataset) ... ok
test_filter_labels (unit.data.transforms_test.TestTransforms) ... ok
test_k_shots (unit.data.transforms_test.TestTransforms) ... ok
test_load_data (unit.data.transforms_test.TestTransforms) ... ok
test_n_ways (unit.data.transforms_test.TestTransforms) ... ok
test_remap_labels (unit.data.transforms_test.TestTransforms) ... ok
test_clone_module_basics (unit.utils_test.UtilTests) ... ok
test_clone_module_models (unit.utils_test.UtilTests) ... ok
test_clone_module_nomodule (unit.utils_test.UtilTests) ... ok
test_distribution_clone (unit.utils_test.UtilTests) ... ok
test_distribution_detach (unit.utils_test.UtilTests) ... ok
test_module_clone_shared_params (unit.utils_test.UtilTests) ... ok
test_module_detach (unit.utils_test.UtilTests) ... ok
test_rnn_clone (unit.utils_test.UtilTests) ... ok
test_tasksets (unit.vision.benchmarks_test.UtilTests) ... ok

----------------------------------------------------------------------
Ran 41 tests in 33.740s

OK
Files already downloaded and verified
Files already downloaded and verified
make lint
make[2]: Entering directory '/media/seba-1511/OCZ/Dropbox/Dev/l2l_learnables'
pycodestyle learn2learn/ --max-line-length=160
make[2]: Leaving directory '/media/seba-1511/OCZ/Dropbox/Dev/l2l_learnables'
make[1]: Leaving directory '/media/seba-1511/OCZ/Dropbox/Dev/l2l_learnables'
make[1]: Entering directory '/media/seba-1511/OCZ/Dropbox/Dev/l2l_learnables'
OMP_NUM_THREADS=1 \
MKL_NUM_THREADS=1 \
python -W ignore -m unittest discover -s 'tests' -p '*_test_notravis.py' -v
test_final_accuracy (integration.maml_miniimagenet_test_notravis.MAMLMiniImagenetIntegrationTests) ... ok
test_final_accuracy (integration.protonets_miniimagenet_test_notravis.ProtoNetMiniImageNetIntegrationTests) ... ok
test_download (unit.vision.cifarfs_test_notravis.CIFARFSTests) ... ok
test_download (unit.vision.cu_birds200_test_notravis.BirdsTests) ... ok
test_download (unit.vision.fc100_test_notravis.FC100Tests) ... ok
test_download (unit.vision.fgvc_aircraft_test_notravis.AircraftTests) ... ok
test_download (unit.vision.tiered_imagenet_test_notravis.TieredImagenetTests) ... ok
test_download (unit.vision.vgg_flowers_test_notravis.FlowersTests) ... ok

----------------------------------------------------------------------
Ran 8 tests in 89.412s

OK


Iteration 0
Meta Train Error 0.06558676646091044
Meta Train Accuracy 0.2499999930150807
Meta Valid Error 0.06655425822827965
Meta Valid Accuracy 0.21749999444000423
Meta Test Error 0.06511959503404796
Meta Test Accuracy 0.22999999253079295
epoch 1, train, loss=14.4092 acc=0.0837
epoch 1, val, loss=1.7203 acc=0.2944
batch 200: 28.48(20.67)
Downloading CUBirds200 dataset. (1.1Gb)
make[1]: Leaving directory '/media/seba-1511/OCZ/Dropbox/Dev/l2l_learnables'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Number of parameters change when clone_module()

1 participant