[PyTorch] DataLoader shuffle 기능 사용 시, RuntimeError: Expected a 'cuda' device type for generator but found 'cpu'

2022. 7. 14. 14:09·프로그래밍 Programming/파이썬 Python

PyTorch에서 dataloader 기능 중에 shuffle을 사용하고자했는데 다음과 같은 에러를 봤다.

 

RuntimeError: Expected a 'cuda' device type for generator but found 'cpu'

 

참고로 나는 내가 만든 custom dataset을 class로 만들고, 그 클래스에 대하여 DataLoader를 만들었다.

 

인터넷을 검색하여 찾아보니 이 shuffle 기능을 위해 사용하는 generator가 cpu로 설정되어 있으면 그 device에서 generator를 생성하는 것으로 보였다.

나는 custom dataset에서 모두 데이터의 device를 cuda로 설정하는 작업을 거치기 때문에 오류가 생긴 것이다.

 

 

이 글에서 보면

generator를 설정할 수 있다.

 

따라서 

device = "cuda"
test_ds = CustomDataset_test()
test_dl = DataLoader(test_ds, batch_size=16, shuffle=True, generator=torch.Generator(device=device) )

위의 코드처럼 generator의 device를 cuda로 설정하면 문제가 발생하지 않는다.

 

문제 해결!

 


 

참고자료

 

https://pytorch.org/docs/stable/generated/torch.Generator.html#torch.Generator

 

Generator — PyTorch 1.12 documentation

Shortcuts

pytorch.org

 

저작자표시 비영리 변경금지 (새창열림)

'프로그래밍 Programming > 파이썬 Python' 카테고리의 다른 글

[Python] matplotlib default 설정  (0) 2022.07.16
[PyTorch] gradient descent로 변수를 직접 update할 때 주의할 점  (0) 2022.07.14
[PyTorch] GPU에서 텐서 사용하기  (0) 2022.07.12
[PyTorch] PyTorch 다차원 텐서 곱(matmul)  (0) 2022.07.10
[에러기록] matplotlib의 imshow를 쓸 때 커널이 죽는 현상 (추가)  (4) 2022.07.09
'프로그래밍 Programming/파이썬 Python' 카테고리의 다른 글
  • [Python] matplotlib default 설정
  • [PyTorch] gradient descent로 변수를 직접 update할 때 주의할 점
  • [PyTorch] GPU에서 텐서 사용하기
  • [PyTorch] PyTorch 다차원 텐서 곱(matmul)
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (468)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (27)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 실험 Experiment (1)
      • 유학 생활 Daily (8)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    생산성
    Statics
    teps
    pytorch
    Numerical Analysis
    고체역학
    논문작성
    텝스
    Linear algebra
    LaTeX
    우분투
    논문작성법
    Python
    Zotero
    WOX
    인공지능
    텝스공부
    obsidian
    에러기록
    수치해석
    Dear abby
    MATLAB
    딥러닝
    matplotlib
    Julia
    ChatGPT
    옵시디언
    서버
    IEEE
    JAX
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[PyTorch] DataLoader shuffle 기능 사용 시, RuntimeError: Expected a 'cuda' device type for generator but found 'cpu'
상단으로

티스토리툴바