지금은 불편해 보여도 이렇게 사용하는 방법 꼭 알아야함
#model = nn.Linear(3, 1)
#nn.Modulue is Callable -> this class is also Callable!
class LinearRegressionModel(nn.Module):
def __init__(self):
super().__init__()
self.linear = nn.Linear(3, 1)
# nn.Model의 __call__ 안에 self.forward(param) 을 호출시키는 코드가 있음
# 그래서 이 forward는 내가 명시적으로 호출해야 하는 매서드가 아님
# model(param)하면 nn.Module의 __call__(param) 실행 -> 거기에서 self.forward(param) 호출
def forward(self, x):
return self.linear(x)
model = LinearRegressionModel()class BinaryClassifier(nn.Module):
def __init__(self):
super().__init__()
self.linear = nn.Linear(2, 1)
self.sigmoid = nn.Sigmoid()
def forward(self, x):
return self.sigmoid(self.linear(x))