딥러닝 Deep learning - Modeling

LSH·2023년 9월 5일
0

교육 정보

  • 교육 명: 경기미래기술학교 AI 교육
  • 교육 기간: 2023.05.08 ~ 2023.10.31
  • 강사: 양정은 강사님
  • 강의 계획:
    1. 딥러닝 소개 및 프레임워크 설치
    2. Artificial Neurons Multilayer Perceptrons
    3. 미분 기초 Backpropagation
    4. MLP 구현하기
    5. MLP로 MNIST 학습시키기(Mini-project)
    6. Sobel Filtering
    7. Convolutional Layers
    8. 이미지 분류를 위한 CNNs
    9. CNN으로 MNIST 학습시키기
    10. VGGNet, ResNet, GoogLeNet
    11. Image Classification 미니 프로젝트
    12. Object Detection 소개
    13. Region Proposal, Selective Search
    14. RCNN
    15. Single Shot Detection

Modeling flow

Modeling flow를 익히기 위한 random dataset 학습

  • import 및 랜덤 데이터 생성 (torch, sklearn 사용)

    from sklearn.datasets import make_blobs, make_moons
    import torch
    from torch.utils.data import DataLoader, TensorDataset
    import torch.nn as nn
  • 각 데이터에 맞는 Model 설계
    ex) make_blobs(2 features)로 만든 데이터를 위한 딥러닝 모델 → lenear

    class SimpleModel(nn.Module):
      def __init__(self):
        super(SimpleModel, self).__init__()
    
        self.fc = nn.Linear(in_features=2, out_features=1)
        self.fc_act = nn.Sigmoid()
    
      def forward(self, x):
  • Device, LR 등 세팅

    from torch.optim import SGD
    
    LR = 0.01 
    if torch.cuda.is_available(): DEVICE = 'cuda'
    elif torch.backends.mps.is_available(): DEVICE = 'mps'
    else: DEVICE = 'cpu'
    
    model = SimpleModel().to(DEVICE) 
    loss_function = nn.BCELoss()
    optimizer = SGD(model.parameters(), lr=LR) 
  • 몇번 학습 시킬지 결정(Epoch으로 지정)하고 학습

    EPOCHS = 10
    for epoch in range(EPOCHS):
      for X, y in data_loader:
        X, y = X.to(DEVICE), y.to(DEVICE)
        pred = model(X)
        loss = loss_function(pred, y)
        optimizer.zero_grad()                
        loss.backward()
        optimizer.step()

사용자는 다음 값을 조절해서 적절한 작동조건을 찾음
; Epochs, Model, LR (Learning rate), Batch Size

profile
:D

0개의 댓글