For torch.nn.Module()
According to the official documentation: Base class for all neural network modules. Your models should also subclass this class. Modules can also contain other Modules, allowing to nest them in a tree structure. You can assign the submodules as regular attributes.
import torch.nn as nn
import torch.nn.functional as F
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.conv1 = nn.Conv2d(1, 20, 5)
self.conv2 = nn.Conv2d(20, 20, 5)
def forward(self, x):
x = F.relu(self.conv1(x))
return F.relu(self.conv2(x))
It used super(Model, self).__init__()
Why not super().__init__(Model, self)
super(Model, self).__init__()
is it actually the same assuper().__init__()
– Referentsuper().__init__(Model, self)
, which is different. Andsuper()
only works since Python 3, so presumably the docs want to be backwards compatible to Python 2 – Ensoul