mindspore.nn.SequentialCell
- class mindspore.nn.SequentialCell(*args)[源代码]
构造Cell顺序容器。关于Cell的介绍,可参考 Cell。
SequentialCell将按照传入List的顺序依次将Cell添加。此外,也支持OrderedDict作为构造器传入。
Note
SequentialCell 和 torch.nn.ModuleList 是不同的,ModuleList是一个用于存储模块的列表,但SequentialCell中的Cell是以级联方式连接的,不是单纯的存储。
- 参数:
args (list, OrderedDict) - 仅包含Cell子类的列表或有序字典。
- 输入:
x (Tensor) - Tensor,其shape取决于序列中的第一个Cell。
- 输出:
Tensor,输出Tensor,其shape取决于输入 x 和定义的Cell序列。
- 异常:
TypeError - args 的类型不是列表或有序字典。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> from mindspore import Tensor >>> import mindspore >>> import mindspore.nn as nn >>> import numpy as np >>> >>> conv = nn.Conv2d(3, 2, 3, pad_mode='valid', weight_init="ones") >>> relu = nn.ReLU() >>> seq = nn.SequentialCell([conv, relu]) >>> x = Tensor(np.ones([1, 3, 4, 4]), dtype=mindspore.float32) >>> output = seq(x) >>> print(output) [[[[27. 27.] [27. 27.]] [[27. 27.] [27. 27.]]]] >>> from collections import OrderedDict >>> d = OrderedDict() >>> d["conv"] = conv >>> d["relu"] = relu >>> seq = nn.SequentialCell(d) >>> x = Tensor(np.ones([1, 3, 4, 4]), dtype=mindspore.float32) >>> output = seq(x) >>> print(output) [[[[27. 27.] [27. 27.]] [[27. 27.] [27. 27.]]]]
- append(cell)[源代码]
在容器末尾添加一个Cell。
- 参数:
cell (Cell) - 要添加的Cell。
样例:
>>> from mindspore import Tensor >>> import mindspore >>> import mindspore.nn as nn >>> import numpy as np >>> >>> conv = nn.Conv2d(3, 2, 3, pad_mode='valid', weight_init="ones") >>> bn = nn.BatchNorm2d(2) >>> relu = nn.ReLU() >>> seq = nn.SequentialCell([conv, bn]) >>> seq.append(relu) >>> x = Tensor(np.ones([1, 3, 4, 4]), dtype=mindspore.float32) >>> output = seq(x) >>> print(output) [[[[26.999863 26.999863] [26.999863 26.999863]] [[26.999863 26.999863] [26.999863 26.999863]]]]