pytorch

Python

[pytorch] transpose, permute 함수

pytorch로 permute 함수를 사용하다가 transpose랑 비슷한 것 같은데 정확히 차이를 모르고 있구나 싶어서 찾아보고 기록하기 위해 해당 포스트를 작성하게 되었다. ◾ permute() 먼저, permute 함수는 모든 차원을 맞교환 할 수 있는 함수로 차원을 교환하면서 contiguous한 성질이 사라진다는 특징이 있다. permute() 괄호 안에 인덱스들을 바꾸고자 하는 위치대로 적어주면 된다. x = torch.rand(1, 2, 3) x1 = x.permute(2, 1, 0) >> output [3, 2, 1] 위 예시에서는 기존에 0,1,2번 인덱스를 가진 [1,2,3]을 2,1,0번 인덱스 순서로 바꿔 [3,2,1]로 바꿔주었기 때문에 output이 [3,2,1]이 되는 것이다...

Python

[pytorch] .detach().cpu().numpy()

pytorch를 사용하다 보면 모듈을 통해 나온 tensor를 사용할 일이 많은데, GPU에 올라가 있는 tensor를 이용하려면 numpy 또는 list로 변환하여야 한다. tensor를 numpy 또는 list로 변환하는 방법은 조금만 찾아보면여러 함수들이 나오긴 하지만 각 함수들을 사용하는 순서가 꽤 중요하기 때문에 자주 쓰는 방법을 기록한다. ◾ detach() pytorch는 tensor에서 이루어진 모든 연산을 기록(graph)해 놓는데 이 연산 기록에서 역전파가 이루어지게 된다. detach() 함수는 이 연산 기록에서 역전파를 중단하고 분리한 tensor를 반환한다. ◾ cpu() GPU 메모리에 올라가 있는 tensor를 CPU 메모리로 복사하는 함수이다. 이후에 numpy로 변환하기 위..

Python

[pytorch] squeeze, unsqueeze 함수

◾ squeeze 함수 squeeze 함수는 Tensor의 차원을 줄이는 함수로, 설정한 차원을 제거 해 준다. 따로 차원을 설정하지 않으면 1인 차원을 모두 제거한다. 1인 차원이 여러개 있어도 여러개 전부 다! 제거한다. import torch x = torch.rand(1,7,46,46) print(x.shape) # torch.Size([1, 7, 46, 46]) x = x.squeeze(dim=1) print(x.shape) # torch.Size([7, 46, 46]) 한가지 조심해야 할 것은 batch size가 1일 때 squeeze 함수를 사용하게 되면 batch 차원을 없애버려 validation 시 오류가 발생하게 된다. 이걸 간과하고 있어서 학습할 때 validation에서 계속 오..

ML & DL

wandb | Weight & Biases(wandb) 설치 및 pytorch에서 사용하기

yolov5나 mmcv 등을 사용하면서 학습 과정을 매 에폭마다 확인할 수 있고 결과까지 예쁘고(? 편하게 볼 수 있어 wandb를 연동하여 사용하고 있다. 회원가입을 하고 init이라는 아주 간단한 것만 해주면 학습 과정 및 결과를 기록하고 저장하기 편하다. 1️⃣ 회원 가입 & wandb 설치 https://wandb.ai/home Sign In with Auth0 Sign in with Microsoft Account wandb.ai 위 사이트에서 wandb에 회원가입을 먼저 해야 한다. 구글과 깃허브 계정으로 쉽고 빠르게 회원 가입이 가능하다. 회원 가입을 한 후에 wandb를 설치 해 주어야 한다. wandb를 사용할 가상환경에 접속한 후 pip install wandb 이렇게 wandb를 설치..

각종 에러들을 해결 해 보자

torch | attributeerror: 'upsample' object has no attribute 'recompute_scale_factor'

우분투를 다시 한번 싹- 밀고 날 것 그 자체의 환경에서 이전에 개발했던 객체 검출 모델을 사용한 코드의 동작 테스트를 진행하던 중 아래와 같은 에러를 마주했다. attributeerror: 'upsample' object has no attribute 'recompute_scale_factor' File /usr/local/lib/python3.8/site-packages/torch/nn/modules/upsampling.py:154, in Upsample.forward(self, input) 152 def forward(self, input: Tensor) -> Tensor: 153 return F.interpolate(input, self.size, self.scale_factor, self.mod..

각종 에러들을 해결 해 보자

CUDA | RuntimeError: CUDA error: no kernel image is available for execution on the device

pc에 문제가 생겨서 우분투를 한번 싹 밀고(사실 한 번이 아님.. ㅠ...) 새로 Ubuntu 20.04 LST를 설치하고 아나콘다, vscode, nvidia-driver, CUDA 설치까지 마친 후에 Yolo v5 모델을 사용하려는데 아래와 같은 에러 메세지가 떴다. RuntimeError: CUDA error: no kernel image is available for execution on the device 나는 RTX3080, CUDA 11.1, CUDNN 8.0.5, pytorch 1.8.0의 환경이었으며 이전과 동일하게 yolo v5 github를 git clone 해 와서 detect.py 파일을 실행하고자 했다. 여기저기 찾아보니 nvidia-driver 문제라기 보단 pytorch ..

토오오끼
'pytorch' 태그의 글 목록