티스토리 뷰
Skills/Error
[Error] TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
Suyeon Cha 2023. 9. 18. 14:52728x90
해당 에러의 발생 원인은 'cuda:0' device 타입의 tensor를 직접 numpy로 변환할 수 없어서 생기는 오류입니다. 이미 tensor는 gpu에 올려져서 계산되다가, numpy 연산을 하려면 cpu에서 가능하니 이런 에러가 발생하는 것입니다. 따라서 'Tensor.cpu()' 등의 메서드를 사용해야합니다.
해결 방법은 tensor를 cpu에 재할당 해주면 됩니다.
보통 방법은 변수 뒤에
.cpu().numpy()
.detach().numpy()
붙여주면 되는데 안 돼서 이번엔 이렇게 했더니 됐습니다.
.detach().cpu().numpy()
- detach(): 텐서를 다른 센터로부터 분리(detach)하여 연산 그래프에서 해당 텐서와 연결을 끊는 역할을 합니다. gradient 계산에서 분리할 때도 사용합니다.
728x90
'Skills > Error' 카테고리의 다른 글
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬 클래스 다형성
- 도커
- Prompt
- NLP
- linux nano
- 서버구글드라이브연동
- cs231n
- 파이썬 딕셔너리
- 리눅스 나노
- stylegan
- docker
- Unsupervised learning
- clip
- 프롬프트
- CNN
- 리눅스 나노 사용
- 파이썬 클래스 계층 구조
- 리눅스 nano
- 파이썬
- prompt learning
- support set
- few-shot learning
- 도커 컨테이너
- 퓨샷러닝
- python
- 구글드라이브연동
- style transfer
- 도커 작업
- 딥러닝
- 리눅스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
250x250