나의 첫번째 딥러닝 모델 만들기 - 모델 학습
import torch import torch.nn as nn # 모델 정의 class SimpleModel(nn.Module): def __init__(self): super().__init__() self.linear = nn.Linear(1, 1) # 입력 차원 1, 출력 차원 1 def forward(self, x): return self.linear(x) # 모델 인스턴스 생성 model = SimpleModel() # 데이터 및 레이블 생성 X = torch.randn(100, 1) # 100개의 입력 데이터 (랜덤) y = 2 * X + 0.5 # 선형 함수로 레이블 생성 (y = 2x + 0.5) # 데이터 분할 (훈련 80%, 테스트 20%) train_size = int(0.8 * len(X)) X_train, X_test = X[:train_size], X[train_size:] y_train, y_test = y[:train_size], y[train_size:] # 손실 함수와 optimizer 정의 criterion = nn.MSELoss() optimizer = torch.optim.SGD(model.parameters(), lr=0.01) # 모델 학습 epochs = 1000 for epoch in range(epochs): y_pred = model(X_train) # 예측값 계산 loss = criterion(y_pred, y_train) # 손실 계산 optimizer.zero_grad() # 기울기 초기화 loss.backward() # 역전파 optimizer.step() # 파라미터 업데이트 # 모델 평가 with torch.no_grad(): y_pred = model(X_test) # 테스트 데이터에 대한 예측값 계산 loss = criterion(y_pred, y_test) # 테스트 데이터에 대한 손실 계산 print(f"테스트 데이터에 대한 손실: {loss.item():.4f}")
기본 미션
레벨업 미션
* 성실한 태도, 작은 나의 땀과 노력이 모여 미래를 만듭니다. 정직, 성실 소중한 가치