oneflow.nn.ParameterList

class oneflow.nn.ParameterList(parameters=None)

Holds parameters in a list.

ParameterList can be indexed like a regular Python list, but parameters it contains are properly registered, and will be visible by all Module methods.

The interface is consistent with PyTorch. The documentation is referenced from: https://pytorch.org/docs/1.10/generated/torch.nn.ParameterList.html?#torch.nn.ParameterList.

Parameters

parameters (iterable, optional) – an iterable of Parameter to add

>>> import oneflow as flow
>>> import oneflow.nn as nn

>>> class MyModule(nn.Module):
...    def __init__(self):
...        super(MyModule, self).__init__()
...        self.params = nn.ParameterList([nn.Parameter(flow.randn(10, 10)) for i in range(10)])
...
...    def forward(self, x):
...        # ParameterList can act as an iterable, or be indexed using ints
...        for i, p in enumerate(self.params):
...            x = self.params[i // 2].mm(x) + p.mm(x)
...        return x

>>> model = MyModule()
>>> model.params
ParameterList(
    (0): Parameter containing: [<class 'oneflow.nn.Parameter'> of size 10x10]
    (1): Parameter containing: [<class 'oneflow.nn.Parameter'> of size 10x10]
    (2): Parameter containing: [<class 'oneflow.nn.Parameter'> of size 10x10]
    (3): Parameter containing: [<class 'oneflow.nn.Parameter'> of size 10x10]
    (4): Parameter containing: [<class 'oneflow.nn.Parameter'> of size 10x10]
    (5): Parameter containing: [<class 'oneflow.nn.Parameter'> of size 10x10]
    (6): Parameter containing: [<class 'oneflow.nn.Parameter'> of size 10x10]
    (7): Parameter containing: [<class 'oneflow.nn.Parameter'> of size 10x10]
    (8): Parameter containing: [<class 'oneflow.nn.Parameter'> of size 10x10]
    (9): Parameter containing: [<class 'oneflow.nn.Parameter'> of size 10x10]
)