본문 바로가기

개발

(23)
TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first. 오류해결방법 Pytorch(파이토치)를 사용하다보면, TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first. 와 같은 오류 문구가 발생하는 경우가 있습니다. 저와 같은 경우는 아래와 같이 model을 학습하여 모델의 output tensor를 이용하여 작업을 할때 이런 오류가 발생했는데요, 해당 오류가 발생하는 이유는 cuda device (gpu)에 할당되어있는 tensor 객체를 numpy 형태로 변경하려고 할때 발생하는 오류라고 합니다. 위의 코드 같은 경우는 model의 output인 activation에 대해서 np.concatenate() 함수를 사용..
[pytorch] Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same 해당 오류는 model과 입력이 되는 data의 type이 달라서 발생하는 오류이다. 해당 오류의 대부분은 model이나 data가 하나는 gpu에 하나는 cpu에 올라와 있는 상태로 연산할 때 발생한다. 따라서 다음과 같은 사항을 체크하여 오류를 해결한다. 1. model을 gpu에 정확히 올렸는지, model = torch.load("...") model.to("cuda") 2. dataset의 data와 target(label)을 gpu에 정확히 올렸는지, for data, target in trainloader: data, target = data.to(device), target.to(device) #... #training #... 3. gpu를 사용하지 않을 경우, model이나 datase..
ModuleNotFoundError: No module named 'hydra' 오류 해결 ModuleNotFoundError: No module named 'hydra' 오류 발생시, hydra를 설치해줘야한다. 이 때, 다음과 같은 명령어를 수행하면, error가 발생하거나 정상적인 설치가 되지 않았다. pip install hydra 다음과 같이 수정 후 install 했더니 정상적으로 설치가 완료되어 오류가 해결되었다. pip install hydra-core
[Jupyter Notebook] 주피터 노트북 폴더 옮기기 주피터 노트북에서 폴더를 통째로 서버나 로컬에 옮겨야 하는 상황, 혹은 다른 디렉토리로 통째로 옮겨야 하는 경우가 있습니다. 이 때, 리눅스 명령어를 통해 옮기고 싶은 폴더를 압축하여 옮기는 방법을 소개합니다. 다음과 같은 방법으로 진행됩니다. 1. 옮기고 싶은 폴더가 보이는 위치에서 주피터 노트북 파일(.ipynb) 생성 오른쪽 Notebook 생성시 kernel은 아무거나 상관없음. 2. 셀에 아래 명령어 입력 !tar -cvf [파일명.tar] [옮기고싶은_폴더명] 3. [파일명.tar] 압축 파일 download 4. 옮기고 싶은 위치에서 [파일명.tar] 압축 파일 upload 5. 옮기고 싶은 폴더가 보이는 위치에서 주피터 노트북 파일(.ipynb) 생성 6. 셀에 아래 명령어 입력 !tar ..
[Anaconda] 가상환경 실행오류 (CommandNotFoundError) 개발 환경 셋팅중 Visual Studio Code terminal에 conda acitvate 가상환경 실행시, 다음과 같은 오류가 발생했다. CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. If using 'conda activate' from a batch script, change your invocation to 'CALL conda.bat activate'. To initialize your shell, run $ conda init Currently supported shells are: - bash - cmd.exe - fish - tcsh - xonsh - zsh - powe..
[Django] urls.py에서 (?P<pk>\d+)$ Django에서 urls.py에서 path를 작성할때 다음과 같이 ?P\d+를 사용할 수 있다. ?P는 정규식 표현의 python extension이다. 여기서 pk는 변수이고 이 pk값을 지정한 view의 인자로 넘겨준다. 여기서 \d는 [0-9] 숫자 문자를 의미하며(pk값은 숫자이기 때문이다.) 뒤에 +를 붙여서 최소 1자리 이상의 자릿수를 같도록 설정할 수 있다. + 추가적으로 맨앞의 r은 해당 문자열이 raw string을 나타내는 것이고, ^는 시작점, $는 끝점을 나타낸다.