※딥러닝 데이터셋/데이터로더 구현 관련 알아둘 점 !
- 파이토치 데이터세트 : Dataset(모델에 입력될 데이터의 형식) -> DataLoader(실제 모델에 데이터 입력)
- 파일의 용량이 크면 데이터를 가져오는게 힘들어 진다(파일이 저장되는 곳(디스크)과 데이터가 저장되는 곳(메모리)이 다르다). 그래서 배치 사이즈를 조절한다 !
- 전날에 딥러닝의 하이퍼파라미터에 대한 블로그를 쓰면서 공부를 했는데, 오늘 배치 사이즈에 대한 얘기를 듣다보니 익숙했다. 어쩌다보니 예습이 되었다 ! 뿌듯하다
-전처리 : 데이터셋 구성 과정에서 처리 !
- init 함수에서 전처리 하는 데이터 : 주로 전체 데이터
- getitem 함수에서 전처하는 데이터 : 데이터 1개의 전처리(학습과정에서 처리된다)
-Ordinal Encoder를 통과한 결과는 (N,1)로 나오는데, 라벨 데이터의 경우에은 (N, ) 형태가 나와야 하기 떄문에 sqeeze() 아니면 flatten() 메소드를 사용한다.
- 딥러닝의 정수 표현에선 int64 보다는 보통 long 타입을 많이 사용한다.
- init함수에서 fit만 진행하고, getitem에서 transform을 진행하여도 된다.
-> fit/transform을 따로 한 코드

-> 메모리가 충분하다면 init에서 하는게 코드적으로 편하지만, 메모리가 간당간당 할때에는 데이터 전체에 대해서는 transform을 하지 않기 때문에 메모리를 효율적으로 사용하기 위해서는 위 코드대로 사용하기도 한다고 한다.
iter, enumerate 등 반복자를 많이 안써봐서 낯선데, 좀 더 공부해봐야겠다.
iter :
-
역할: 반복 가능한 객체(iterable)에서 반복자(iterator)를 얻거나, 함수+sentinel 조합으로 반복자를 생성.
-
반환값: 반복자 객체(일반적으로 그 객체의 __iter__()/__next__()를 구현한 인스턴스). 항상 제너레이터 타입은 아님.
it = iter([1, 2, 3]) # list_iterator 반환
print(next(it)) # 1
print(list(it)) # [2, 3] (남은 요소들)
# 함수+sentinel 형태 (함수가 sentinel을 반환할 때까지 호출)
import functools, random
def get_random(): return random.randint(0, 5)
it2 = iter(get_random, 0) # get_random()이 0을 반환하면 중지
for x in it2:
print(x)

enumerate :
- 역할: 반복 가능한 객체의 각 항목에 인덱스(순번)를 붙여주는 내장 iterator를 반환.
- 반환값: enumerate 객체(반복자). 각 반복 단계에서 (index, value) 튜플을 생성.
for idx, val in enumerate(['a','b','c']): # idx는 0,1,2
print(idx, val)
for idx, val in enumerate(['a','b','c'], start=1): # idx는 1,2,3
print(idx, val)
e = enumerate([10,20])
print(next(e)) # (0, 10)
print(next(e)) # (1, 20)

- 이미지 전처리에서 중요한 것 : init함수에 어떤 전처리를 넣을 것인가 ? getitem() 함수에 어떤 전처리를 넣을 것인가 ?
- TorchVision의 ImageFoler 객체를 활용하면 이미지 전처리를 더 간단하게 구현 가능 !
TorchVision : pytorch에서 제공하는 이미지 전처리
- 딥러닝의 풀 파이프라인 :
EDA -> 데이터셋/데이터로더 -> 모델링 -> 손실함수/옵티마이저 -> 학습 로직 작성 -> 손실 그래프 시각화
'TIL' 카테고리의 다른 글
| [TIL] #9 2026-03-26 ~ 3-27 (1) | 2026.03.27 |
|---|---|
| [TIL] #8 2026-03-16 (2) | 2026.03.16 |
| [TIL] #6 2026-03-10 (0) | 2026.03.10 |
| [TIL] #5 2026-03-06 (1) | 2026.03.06 |
| [TIL] #4 2026-03-05 (1) | 2026.03.05 |
