I can implement ModuleDict of ModuleList. But I got an error when I write a ParameterDict of ParameterList
nn.ParameterDict({'a': nn.ParameterList([nn.Parameter(torch.Tensor(1,2))])})
/home/qiuweikang/miniconda3/lib/python3.8/site-packages/torch/nn/modules/container.py:434: UserWarning: Setting attributes on ParameterList is not supported.
warnings.warn("Setting attributes on ParameterList is not supported.")
/home/qiuweikang/miniconda3/lib/python3.8/site-packages/torch/nn/modules/container.py:550: UserWarning: Setting attributes on ParameterDict is not supported.
warnings.warn("Setting attributes on ParameterDict is not supported.")
Traceback (most recent call last):
File "/home/qiuweikang/UnifiedNLP/train.py", line 164, in <module>
main()
File "/home/qiuweikang/UnifiedNLP/train.py", line 92, in main
model = Simple(config).to(device)
File "/home/qiuweikang/UnifiedNLP/models/simple.py", line 23, in __init__
self.query_weight = nn.ParameterDict({
File "/home/qiuweikang/miniconda3/lib/python3.8/site-packages/torch/nn/modules/container.py", line 537, in __init__
self.update(parameters)
File "/home/qiuweikang/miniconda3/lib/python3.8/site-packages/torch/nn/modules/container.py", line 615, in update
self[key] = parameter
File "/home/qiuweikang/miniconda3/lib/python3.8/site-packages/torch/nn/modules/container.py", line 543, in __setitem__
self.register_parameter(key, parameter)
File "/home/qiuweikang/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 321, in register_parameter
raise TypeError("cannot assign '{}' object to parameter '{}' "
TypeError: cannot assign 'torch.nn.modules.container.ParameterList' object to parameter 'dep' (torch.nn.Parameter or None required)