일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- AI
- 텍스트분석
- uncertainty
- selenium
- 리눅스
- 알고리즘
- pytorch
- DATA
- 파이썬
- bayesian
- 빅데이터
- VAE
- GNN
- YarinGal
- 텍스트마이닝
- 베이지안
- 논문리뷰
- 크롤링
- dropout
- 불확실성
- 백준
- R
- 강화학습
- PYTHON
- pandas
- 데이터분석
- Graph
- Crawling
- 우분투
- 코딩테스트
- Today
- Total
끄적거림
(수정중)[pytorch] 나만의 이미지 데이터 로딩 in Colab 본문
예전 포스팅으로 한글 손글씨 이미지 데이터인 PHD08 데이터 셋에 대한 소개를 한 적이 있다.
이 데이터 셋을 가지고 이제 대학원 과제로 하게된 한글 손글씨 인식 모델링을 진행하고자 한다.
일단 전의 포스팅을 참고하여 데이터셋을 준비해야한다.
시간이 매우 오래 걸리니 원하는 파일만 가져다가 데이터를 준비하길 바란다.
그 다음으로 데이터를 가지고 모델링을 해야하는데 내 노트북은 8기가 램의 intel i5 - 10세대 CPU이기 때문에 뭐 크게 나쁜 사양은 아니지만 그래도 한 번 GPU 학습을 해보면 어떨까 해서(노트북에 낮은 수준의 NVIDIA가 있긴하지만 DL을 돌리기엔 역부족,,,) 국민노트북 Colab을 활용하기로 했다.
코랩: colab.research.google.com/
구글 계정만 있으면 손쉽게 구글의 GPU를 다룰 수 있기 때문에 공부용으로는 괜찮다고 생각한다.
이제 구글 드라이브에 준비했던 데이터들을 업로드 하고 colab에서 이를 마운트하면 colab에서 구글 드라이브에 접근할 수 있다.
Colab 시작하기 feat. Google Drive 마운트
1. 데이터 준비(구글 드라이브)
그림처럼, 구글 드라이브에 상위 폴더 아래에 하위 폴더로 그림과 같이 이미지 데이터를 분리하여 업로드 해줘야한다.
그래야 제대로 데이터들을 읽어올 수 있기 때문이다.
2. 데이터 읽기(Colab)
import torchvision
data = torchvision.datasets.ImageFolder(
root = 'drive/My Drive/CAU/2020_2/AdvancedAI/Korean_Image_Data',
transform=None
)
torchvision은 pytorch에서 비전(vision)분야를 위해 만들어진 패키지이다.
위의 코드를 이용하여 데이터를 불러올 수 있다.
root 인자는 1.데이터 준비 단계에서 보았던 것처럼 이미지 데이터가 있는 최상위 폴더로 지정해준다.
3. 데이터 나누기(Colab)
len(data) # 10935
print(int(len(data)*0.5)) # 5467
print(int(len(data)*0.3)) # 3280
print(int(len(data)*0.2)) # 2187
int(len(data)*0.5) + int(len(data)*0.3) + int(len(data)*0.2) # 10934
train, val, test = torch.utils.data.random_split(data, [5468, 3280, 2187])
print(len(train)) # 5468
print(len(val)) # 3280
print(len(test)) # 2187
전체 데이터 수는 10935개였기 때문에, 이를 일정한 비율로 split하여 train, val, test 데이터로 나눠보자.
이때, random_split( ) 함수를 이용하여 손쉽게 나눠볼 수 있다.
4. 데이터 확인(Colab)
실제로 데이터를 잘 가져왔는지 살펴보자.
train.dataset.class_to_idx
# {'가': 0, '곯': 1, '깹': 2, '끙': 3, '나': 4}
위의 코드를 실행해보면, 각 class를 어떻게 labeling했는지를 확인할 수 있다.
이제 value_count를 확인해보자!
'Python > pytorch' 카테고리의 다른 글
[pytorch] 도움이 되는 자료들 (0) | 2021.08.28 |
---|---|
Dropout 고찰: output에 scaling하는 이유(Dropout 구현) (0) | 2021.04.06 |