Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 에러기록
- Julia
- 딥러닝
- Statics
- teps
- ChatGPT
- WOX
- Numerical Analysis
- 논문작성법
- Dear abby
- Zotero
- JAX
- 텝스공부
- 인공지능
- matplotlib
- MATLAB
- Python
- Linear algebra
- 우분투
- LaTeX
- pytorch
- 텝스
- IEEE
- 고체역학
- 논문작성
- obsidian
- 옵시디언
- 수치해석
- 생산성
- 수식삽입
Archives
- Today
- Total
뛰는 놈 위에 나는 공대생
[에러기록] RuntimeError: Expected a 'cuda' device type for generator but found 'cpu' 본문
프로그래밍 Programming
[에러기록] RuntimeError: Expected a 'cuda' device type for generator but found 'cpu'
보통의공대생 2022. 12. 30. 22:22이 에러는 pytorch에서 dataloader를 쓸 때 발생할 수 있는 에러이다.
RuntimeError: Expected a 'cuda' device type for generator but found 'cpu'
dataloader는 클래스라서 내부를 뜯어보지 않는 이상 잘 모르지만
나는 항상 텐서를 torch.cuda.FloatTensor 또는 torch.cuda.DoubleTensor로 쓴다.
torch.set_default_tensor_type(torch.cuda.FloatTensor)
그런데 이렇게 하더라도 데이터로더 상에서는 cpu 텐서를 내뱉는다.
그래서 dataloader 코드를 바꿔줘야 한다.
dtype = torch.float
device = torch.device("cuda")
train_dl = DataLoader(train_data, batch_size=64, shuffle=True, generator=torch.Generator(device=device))
test_dl = DataLoader(test_data, batch_size=64, shuffle=True, generator=torch.Generator(device=device))
이렇게 하면
xb,yb = next(iter(train_dl))
print(xb.dtype)
>> torch.float64
double tensor가 나온다. float tensor가 나오도록 하고 싶은데 이는 좀 더 알아봐야할 것 같다.
'프로그래밍 Programming' 카테고리의 다른 글
[git blog] jekyll 테마 적용하면서 발생한 에러들 (0) | 2023.05.10 |
---|---|
[JupyterLab] 코드 줄 번호 default 표시, 폰트 사이즈, family 변경 (0) | 2023.01.02 |
[에러기록] Pytorch 모델 weight가 업데이트되는지 확인 (0) | 2022.12.30 |
[에러기록] oserror: [winerror 182] 운영 체제가 %1을(를) 실행할 수 없습니다. Error loading "\lib\site-packages\torch\lib\shm.dll" or one of its dependencies (2) | 2022.12.29 |
[에러기록] 아나콘다와 관련된 수많은 에러들 (0) | 2022.12.29 |
Comments