class SequentialMLP(nn.Module):
def __init__(self, input_dim, hidden_dim, output_dim):
super().__init__()
self.layers = nn.Sequential(
nn.Linear(input_dim, hidden_dim), # W:(hidden,input) + bias:(hidden,) ← PyTorch가 자동 생성!
nn.ReLU(),
nn.Linear(hidden_dim, output_dim) # W:(output,hidden) + bias:(output,) ← PyTorch가 자동 생성!
)
def forward(self, x):
return self.layers(x)
# 하이퍼파라미터: 사람이 직접 지정 ✋
model = SequentialMLP(input_dim=20, hidden_dim=10, output_dim=1)
# 더미 데이터: (데이터수=40, 특성수=20)
X = torch.ones(size=(40, 20))
y_pred = model(X)
y_pred.size() # → torch.Size([40, 1])
# bias는 학습 파라미터 — 역전파로 알아서 업데이트돼요 🔁
# model.layers[0].bias → tensor([...], requires_grad=True)