반응형

파이토치 22

파이토치 설치 과정 Solving environment 오류 해결

Case 1 : Anaconda Pytorch 설치 에러 디버깅 파이토치 사이트에서 conda를 이용한 명령어를 통해서 설치하는 도중 아래와 같은 오류가 발생하면서 설치 과정이 더이상 진행되지 못하였습니다. Solving environment: / The environment is inconsistent, please check the package plan carefully The following packages are causing the inconsistency: 오류 원인 cuda 라이브러리를 설치한 뒤에는 해당 환경에서 conda 명령어로 파이토치가 정상 설치됨을 확인하였는데, 이것이 원인으로 추측되기는 하였습니다. 오류 해결법(pip으로 설치) Pytorch 사이트에서 conda가 아닌 pi..

Python/Debugging 2022.04.15

Transformers 라이브러리에서 학습한 모델 저장, 불러오기 방법

Transformers model save, load Hugging Face에서 제공하는 Transformers 라이브러리의 모델들을 학습 뒤 저장하는 방법과, 저장된 모델을 불러오는 방법에 대해서 살펴보겠습니다. 모델 저장 방법 : save_pretrained(디렉토리) 예를 들어, Transformers의 BertForMaskedLM, TFAutoModelWithLMHead 모델을 불러와서 (BertForMaskedLM는 파이토치 기반, TFAutoModelWithLMHead는 텐서플로우 기반) fine-tune 과정을 수행한 이후 학습된 모델을 파일로 저장하고 싶은 상황을 가정해보겠습니다. from transformers import BertForMaskedLM, TFAutoModelWithLMHe..

Python/NLP Code 2022.03.10

[Pytorch] 파이토치 모델 저장, 불러오기 방법

torch model save, load 예제 이번 글에서는 파이토치에서 학습된 모델을 저장하고, 저장된 모델을 다시 불러오는 방법을 파라미터만 저장하는 방법과 모델 전체를 save하는 방법으로 나누어서 설명해보겠습니다. 참고로, 이 글은 파이토치 공식 문서를 기반으로 작성되었습니다. model save 방법 1 : 파라미터만 저장 state.dict() 메소드를 불러와 모델의 파라미터만 골라서 저장이 가능합니다. 이 방법은 모델의 클래스 종류와 argument를 아는 경우 용량을 절약할 수 있어 권장드립니다. 저장될 파일은 pt 확장자로 지정해주시면 됩니다. # torch.save(모델이 저장된 변수 이름.state_dict(), 모델이 저장될 디렉토리) torch.save(model.state_dic..

Python/Pytorch 2022.03.08

[Pytorch] torch.view, torch.reshape의 사용법과 차이 비교

파이토치 view 함수와 reshape 함수 비교 안녕하세요. 이번 글에서는 파이토치에서 텐서의 차원 변환을 할 때 사용하는 torch.view와 torch.reshape 함수의 기본적인 사용법과 두 함수의 차이에 대하여 다루어보는 시간을 가져보겠습니다. torch.view와 torch.reshape 함수의 원리와 사용 방법 이 두 함수의 원리는 Numpy의 reshape 함수를 기반으로 하고 있습니다. 해당 함수의 사용 방법은 아래의 포스팅에서 다루어, 추가 설명은 따로 하지 않도록 하겠습니다. [Numpy] 배열 shape 변경 : np.reshape 함수 사용법, -1 의미 파이썬 넘파이 배열 차원 변경 함수 : np.reshape reshape 함수를 통하여 넘파이 배열의 차원을 변환하는 방법에 ..

Python/Pytorch 2022.02.27

[Pytorch] 파이토치 설치 방법 정리

torch install 방법 요약 안녕하세요. 이번 시간에는 매우 간단하게 사용 환경에 맞는 파이토치를 설치하는 방법을 말씀드리도록 하겠습니다. 1단계. 파이토치 사이트 접속 및 커맨드 입력 먼저, 파이토치 공식 사이트인 https://pytorch.org/에 접속해줍니다. 위와 같은 설정에서 각 항목을 아래 기준으로 선택해줍니다. PyTorch Build : 현재 가장 안정 버전 / 최신 베타 버전 / 장기 지원 예전 버전 중 선택 Your OS : 리눅스 / 맥 / 윈도우 중 사용 운영체제 선택 Package : 가상환경이라면 Conda, 로컬환경이라면 Conda / Pip 중 선택 권장 Language : 사용할 언어 환경 선택 Compute Platform : GPU가 있다면 CUDA 버전에 맞..

Python/Pytorch 2022.02.09

[Pytorch] 파이토치 텐서 자료형 확인, 타입 변환(casting) 방법

torch tensor type check & casting 이번 글에서는 파이토치 라이브러리에서 텐서의 타입을 확인하고, 다른 자료형으로 캐스팅(변경)하는 방법에 대해서 간단하게 정리해보겠습니다. 파이토치 텐서 타입 확인 : dtype 속성 파이토치에서 자료형을 확인하는 방법은 텐서의 dtype 속성을 확인해주시면 간단히 해결됩니다. import torch a = torch.randn(2, 2, 2) b = torch.IntTensor([1, 3, 5]) print(a.dtype) # torch.float32 print(b.dtype) # torch.int32 참고로, 텐서의 자료형은 float, int, complex 등 실수, 정수, 복소수 등 속성 표현부와 8, 16, 32, 64 등 할당 메모리..

Python/Pytorch 2022.02.08

[Pytorch] contiguous 원리와 의미

torch의 contiguous에 대해서 안녕하세요. 이번 시간에는 파이토치에서 메모리 내에서의 자료형 저장 상태로 등장하는 contiguous의 원리와 의미에 대해서 간단히 살펴보도록 하겠습니다. contiguous 여부와 stride 의미 간단한 예시를 들어 설명하기 위해서 shape이 (4, 3)으로 동일한 두 tensor a, b를 다음과 같이 선언해보겠습니다. import torch a = torch.randn(3, 4) a.transpose_(0, 1) b = torch.randn(4, 3) # 두 tensor는 모두 (4, 3) shape print(a) ''' tensor([[-0.7290, 0.7509, 1.1666], [-0.9321, -0.4360, -0.2715], [ 0.1232,..

Python/Pytorch 2022.02.08

[Pytorch] 텐서 쌓기 함수 torch.cat(), torch.stack() 비교

torch cat vs stack 함수 차이 이번 글에서는 파이토치에서 텐서를 쌓는 경우 사용하게 되는 cat과 stack 함수의 차이와 사용 방법에 대해서 살펴보도록 하겠습니다. 먼저, 다음과 같이 간단한 (2, 3) shape의 2차원 텐서 2개를 선언하겠습니다. import torch # (2, 3) 사이즈 2차원 텐서 2개 생성 a = torch.tensor([[1, 2, 3], [4, 5, 6]]) b = torch.tensor([[7, 8, 9], [10, 11, 12]]) 이제 이 두 개의 텐서를 가지고 cat과 stack 함수를 적용해보겠습니다. 파이토치 cat 함수 사용법 cat 함수는 원하는 dimension 방향으로 텐서를 나란하게 쌓아줍니다. 예를 들어, (a, x, y)와 (b, ..

Python/Pytorch 2022.01.27

[Pytorch] 원소 반복 텐서 확장 : expand, expand_as, repeat 사용법

torch expand, expand_as, repeat 함수 차이 비교 이번 글에서는 파이토치에서 원소를 반복하여 텐서의 차원을 확장하는 함수들인 expand, expand_as, repeat 함수들의 사용법 차이를 분석해보는 시간을 가져보도록 하겠습니다. 파이토치 expand 함수 expand() 메소드는 원하는 차원 크기를 input으로 받아 텐서의 값들을 뒤쪽 axis에서 반복하여 확장된 차원의 반복 텐서를 생성합니다. 반복을 원하는 텐서의 size가 (x, y, z) 식이라면, input으로는 (a, b, c, ... , x, y, z) 처럼 마지막 axis들의 크기는 input으로 넣은 차원과 동일한 크기여야 합니다. 첫 번째로, 1차원 텐서의 확장 예시입니다. import torch x = ..

Python/Pytorch 2022.01.26

[Pytorch] squeeze와 unsqueeze 함수 사용법 정리

torch squeeze vs unsqueeze 이번 글에서는 파이토치에서 squeeze와 unsqueeze 함수의 용도와 사용 예시에 대해서 살펴보도록 하겠습니다. 이 글은 파이토치의 squeeze, unsqueeze 함수에 대한 공식 문서를 바탕으로 작성되었습니다. Pytorch squeeze 함수 사용 방법 참고로, 지난 번에 numpy의 squeeze 함수 사용법에 대하여 다룬 글이 있었는데, torch 라이브러리에서도 원리는 거의 비슷합니다. [Numpy] np.squeeze 함수 사용법과 의미 파이썬 넘파이 np.squeeze() 함수 : 크기가 1인 axis 제거 이번 시간에는 파이썬 넘파이 배열에서 크기가 1인 추가 axis를 제거하는 np.squeeze 함수의 사용법과 의미에 대해서 간단..

Python/Pytorch 2022.01.25
반응형