Pytorchシリーズ1:torch.nn.Sequential()説明
torch.nn.Sequential
はSequential
コンテナであり、モジュールは構造関数で伝達される順序でモジュールに追加される.通俗的に言えば、自分のニーズに応じて、異なる関数を1つの(小さな)モジュールに組み合わせて使用したり、組み合わせたモジュールを自分のネットワークに追加したりすることです.主に2つの方法があります.#
conv_module = nn.Sequential(
nn.Conv2d(1,20,5),
nn.ReLU(),
nn.Conv2d(20,64,5),
nn.ReLU()
)
#
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv_module = nn.Sequential(
nn.Conv2d(1,20,5),
nn.ReLU(),
nn.Conv2d(20,64,5),
nn.ReLU()
)
def forward(self, input):
out = self.conv_module(input)
return out
別の方法:
# ,
#
conv_module = nn.Sequential(OrderedDict([
('conv1', nn.Conv2d(1,20,5)),
('relu1', nn.ReLU()),
('conv2', nn.Conv2d(20,64,5)),
('relu2', nn.ReLU())
]))
torch.nn.Sequentialとtorch.nn.Moduleの違いと選択
torch.nn.Module
を使用すると、RNN
などのtorch.nn.Sequential
を直接使用します.