Хорошо, есть несколько вещей.
Начиная с того, почему вы звоните netz()
, вы уже ранее вызывали объект с помощью netz =Net()
, так что это не имеет смысла.
Во-вторых, nn.Sequential
ожидает *args
в качестве аргумента "конструктора", поэтому вы напрямую передаете подклассы модулей: netz = nn.Sequential(Net(), nn.Linear(100,100))
или распаковываете их: nn.Sequential(*[nn.Linear(100,100), Net()])
.
Вы также можете добавить несколько модулей, используя OrderedDict
, что хорошо документировано в PyTorch документах (, с которыми вам следует ознакомиться, кстати - это есть причина! )
model = nn.Sequential(OrderedDict([
('conv1', nn.Conv2d(1,20,5)),
('relu1', nn.ReLU()),
('conv2', nn.Conv2d(20,64,5)),
('relu2', nn.ReLU())
]))
Вы также можете добавить модуль с my_modules.add_module("my_module_name", Net())
в существующую коллекцию заказанных модулей.