[TIL] #7 2026-03-11

2026. 3. 11. 18:47·TIL

※딥러닝 데이터셋/데이터로더 구현 관련 알아둘 점 !

 

- 파이토치 데이터세트 : Dataset(모델에 입력될 데이터의 형식) -> DataLoader(실제 모델에 데이터 입력)

 

- 파일의 용량이 크면 데이터를 가져오는게 힘들어 진다(파일이 저장되는 곳(디스크)과 데이터가 저장되는 곳(메모리)이 다르다). 그래서 배치 사이즈를 조절한다 !

 

- 전날에 딥러닝의 하이퍼파라미터에 대한 블로그를 쓰면서 공부를 했는데, 오늘 배치 사이즈에 대한 얘기를 듣다보니 익숙했다. 어쩌다보니 예습이 되었다 ! 뿌듯하다

 

-전처리 : 데이터셋 구성 과정에서 처리 !

 

- init 함수에서 전처리 하는 데이터 : 주로 전체 데이터

- getitem 함수에서 전처하는 데이터 : 데이터 1개의 전처리(학습과정에서 처리된다)

 

-Ordinal Encoder를 통과한 결과는 (N,1)로 나오는데, 라벨 데이터의 경우에은 (N, ) 형태가 나와야 하기 떄문에 sqeeze() 아니면 flatten() 메소드를 사용한다.

 

- 딥러닝의 정수 표현에선 int64 보다는 보통 long 타입을 많이 사용한다.

 

- init함수에서 fit만 진행하고, getitem에서 transform을 진행하여도 된다. 

 

-> fit/transform을 따로 한 코드

 

확실히 init안에서 처리할 때보다 복잡하다.

 

 

-> 메모리가 충분하다면 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
'TIL' 카테고리의 다른 글
  • [TIL] #9 2026-03-26 ~ 3-27
  • [TIL] #8 2026-03-16
  • [TIL] #6 2026-03-10
  • [TIL] #5 2026-03-06
uj07096
uj07096
개발블로그 시작 !
  • uj07096
    김재헌 님의 블로그
    uj07096
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Algorithm
      • My IT
        • Article
        • Codes
      • TIL
      • My Projects
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    머신러닝
    코딩테스트
    Tensor
    Stack
    Faster R-CNN
    autoencoder
    convolution
    파이썬
    kaggle
    LSTM
    GAN
    코테
    DeepLearning
    이상치
    til
    딥러닝
    데이터전처리
    transfer learning
    optuna
    python
    AI
    EfficientNet
    ResNet
    Algorithm
    DenseNet
    PyTorch
    프로그래머스
    EDA
    LeetCode
    YOLO
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
uj07096
[TIL] #7 2026-03-11
상단으로

티스토리툴바