교육 정보
- 교육 명: 경기미래기술학교 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
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