본문 바로가기

개발/python

(8)
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..
[python] Python에서 JSON type 데이터 다루기 파이썬에서 JSON 형태의 데이터를 다루는 법을 알아보겠습니다. JSON 파일 읽기 JSON은 데이터를 전송 응답하는데 보편적으로 쓰이는 형식이며, Key와 Value가 쌍을 이루는 구조로 되어있습니다. 이러한 데이터 형식을 처리하기 위해 json 패키지를 import하여 loads() 메소드를 사용합니다. 다음은 예시 코드입니다. import json data = '{ "이름": "홍길동", "나이": 20 }' json_data = json.loads(data) print(json_data['이름']) print(json_data['나이']) json.loads()에 json 데이터를 인자로 넣어주면, python은 기본적으로 json을 Dictionary 형태로 변환합니다. 따라서 위와 같이 jso..