상세 컨텐츠

본문 제목

MLDL학습 06 - CNN과 pytorch

카테고리 없음

by 앱등개발자IOS 2022. 10. 10. 14:26

본문

# CNN은 어떻게 사용하기 시작하였는가?? 

Fully-Connected Layer (Dense Layer)는 앞선 과제들에서 사용했듯 이미지를 input으로 넣을 때, 2차원 형태의 이미지들을 1차원 (1열)로 vectorize하였다.

이렇게 input을 해주면 어떤 문제가 발생할까? 

    -> 2차원 이미지가 갖고있는 "공간성"이 사라져버린다

    CNN은 2차원 input형태를 유지하며 "feature"를 뽑아내고 마지막에 vectorize를 하기 때문에, 이미지가 갖고있는 상,하,좌,우 모든

    방향으로의 특징들도 살려서 분석해낼 수 있다.

# CNN의 구조  

2차원, 혹은 3차원 input 형태를 유지하며 (size는 작아질 수 있음) 특징을 뽑아내는 "Feature layers"

분류를 담당하는 "Classifier layer"로 나누어볼 수 있다.

 

# Pytorch 라이브러리 

Pytorch는 더 나은 가독성과 모듈성을 위해 Dataset 코드를 모델 학습 코드로부터 분리하는 것이 이상적이라고 말한다.

따라서 Pytorch는 torch.utils.data.DataLoadertorch.utils.data.Dataset의 두가지 데이터 요소를 제공하여 데이터를 사용할 수 있게 한다. 

Dataset에 샘플과 Label을 저장하고,

DataLoader는 우리가 Dataset에 쉽게 접근할 수 있게 Dataset을 iterable로 감싼다.