LayerList

class paddle.nn.LayerList ( sublayers=None ) [源代码]

LayerList用于保存子层列表,它包含的子层将被正确地注册和添加。列表中的子层可以像常规python列表一样被索引。

参数:

  • sublayers (iterable,可选) - 要保存的子层。

返回:无

代码示例

  1. import paddle
  2. import numpy as np
  3. class MyLayer(paddle.nn.Layer):
  4. def __init__(self):
  5. super(MyLayer, self).__init__()
  6. self.linears = paddle.nn.LayerList(
  7. [paddle.nn.Linear(10, 10) for i in range(10)])
  8. def forward(self, x):
  9. # LayerList can act as an iterable, or be indexed using ints
  10. for i, l in enumerate(self.linears):
  11. x = self.linears[i // 2](x) + l(x)
  12. return x

append ( )

添加一个子层到整个list的最后。

参数:

  • sublayer (Layer) - 要添加的子层。

代码示例

  1. import paddle
  2. linears = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(10)])
  3. another = paddle.nn.Linear(10, 10)
  4. linears.append(another)
  5. print(len(linears)) # 11

insert ( )

向list中插入一个子层,到给定的index前面。

参数:

  • **index ** (int) - 要插入的位置。

  • sublayers (Layer) - 要插入的子层。

代码示例

  1. import paddle
  2. linears = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(10)])
  3. another = paddle.nn.Linear(10, 10)
  4. linears.insert(3, another)
  5. print(linears[3] is another) # True

extend ( )

添加多个子层到整个list的最后。

参数:

  • sublayers (iterable of Layer) - 要添加的所有子层。

代码示例

  1. import paddle
  2. linears = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(10)])
  3. another_list = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(5)])
  4. linears.extend(another_list)
  5. print(len(linears)) # 15
  6. print(another_list[0] is linears[10]) # True