Skip to content

《파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습》 예제 코드

Notifications You must be signed in to change notification settings

wikibook/pytorchtrf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습

pytorch.jpg

  • 책의 기준 경로는 pytorchtrf 디렉터리입니다.
  • 일부 예제는 이전 예제에서 생성된 데이터나 모델을 활용합니다.
  • 데이터세트는 datasets 디렉터리에 있다고 가정합니다.
  • 생성된 모델 파일은 models 디렉터리에 있다고 가정합니다.

Datasets

이 책에서 사용된 데이터세트는 캐글에서 다운로드할 수 있습니다.

https://www.kaggle.com/datasets/s076923/pytorch-transformer

Kaggle API download guide

토큰 생성

캐글에 로그인하여, 캐글 계정 설정 페이지로 이동합니다.

캐글 계정 설정 페이지의 API 영역으로 이동하여, [Create New Token] 버튼으로 토큰을 생성합니다.

kaggle.png

토큰 파일 경로 이동

생성된 토큰은 kaggle.json 파일로 제공됩니다.

다운로드 받은 토큰 파일(kaggle.json)을 캐글 설정 경로로 이동합니다.

Windows

C:\Users\<Windows-username>\.kaggle\kaggle.json

MacOS / Linux

~/.kaggle/kaggle.json

chmod 600 ~/.kaggle/kaggle.json

MacOS 및 Linux의 경우 chmod를 통해 권한을 변경합니다.

캐글 API 설치

pip install kaggle --upgrade

pip 또는 pip3를 통해 캐글 API를 설치합니다.

데이터세트 다운로드

kaggle datasets download -d s076923/pytorch-transformer

Kaggle API를 통해 데이터세트를 다운로드 받을 수 있습니다.

구글 코랩(Google Colaboratory)의 경우, colab-datasets-download.ipynb 파일에서 수행 방법을 확인해볼 수 있습니다.

Notice

각각의 예제는 실행 환경 및 라이브러리/프레임워크 버전에 따라 결과가 다를 수 있습니다.

이 책에서 사용된 라이브러리/프레임워크 버전은 다음과 같습니다.

absl-py==1.4.0
cython==3.0.2
datasets==2.14.5	
evaluate==0.4.0	
fastapi==0.103.1	
flask==2.3.3	
gensim==4.1.2
imgaug==0.4.0
jamo==0.4.1
konlpy==0.6.0
korpora==0.2.0
lightning==2.0.1
nlpaug==1.1.11
nltk==3.7
opencv-python==4.8.0.76
pandas==1.4.4
pillow==9.2.0
portalocker==2.7.0
pycocotools==2.0.7	
requests==2.28.1
sacremoses==0.0.53
scikit-learn==1.0.2	
sentencepiece==0.1.97
spacy==3.6.1
streamlit==1.22.0
tensorly==0.8.1
timm==0.9.7	
tokenizers==0.13.3	
torch==2.0.1	
torchdata==0.6.1	
torchinfo==1.8.0	
torchtext==0.15.2	
torchvision==0.15.2	
transformers==4.33.2	
ultralytics==8.0.128

일부 라이브러리/프레임워크는 안정적인(stable) 버전이 변경될 수 있으므로, 이 책에서 사용한 버전 설치가 불가능할 수 있습니다.

이런 경우 책에서 사용한 버전과 유사한 버전으로 설치합니다.

MacOS M1/M2 : Device

이 책은 CUDA 가속을 기반으로 작성되어 애플 실리콘이 탑재된 맥에서는 일부 코드가 실행되지 않거나 GPU 가속이 되지 않습니다.

애플 실리콘이 탑재된 맥에서는 cuda 메서드가 지원되지 않으므로, MPS(Metal Performance Shaders) 가속을 사용합니다.

애플 실리콘 사용자는 다음과 같이 to 메서드로 MPS 가속을 적용할 수 있습니다.

import torch


device = "mps" if torch.backends.mps.is_available() and torch.backends.mps.is_built() else "cpu"
tensor = torch.FloatTensor([1, 2, 3]).to(device)

MacOS M1/M2 : Operator not implemented

파이토치의 일부 연산은 MPS 가속이 불가능할 수 있습니다.

MPS 경고가 발생하는 경우 다음과 같이 환경 설정을 변경합니다.

import os


os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"

os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1" 설정은 MPS를 활성화하고, MPS를 지원하지 않는 환경에서도 파이토치가 작동할 수 있도록 설정합니다.

이 설정은 MPS 문제가 발생하는 환경에서 파이토치가 비활성화되지 않도록 합니다.

MPS 가속 사용 여부는 사용중인 하드웨어와 파이토치 버전에 따라 다를 수 있으므로 상황에 맞게 설정을 조정해야 합니다.

_torchtext.so : Symbol not found

일부 라이브러리는 현재 사용 중인 파이토치 버전과 호환되지 않을 수 있습니다.

예를 들어 토치 텍스트는 파이토치 버전과 호환되어야 합니다.

이러한 경우, 다음과 같이 삭제한 후 재설치하여 버전 호환성을 맞출 수 있습니다.

pip uninstall torch torchtext
pip install torch torchtext

파이토치를 재설치할 때, CUDA 버전과의 호환성을 반드시 확인합니다.

Multi30k : Timeout

Multi30k 데이터세트 다운로드 시 타임아웃 오류가 발생하는 경우, 데이터세트의 URL 주소를 변경해야 합니다.

URL 주소를 변경하는 방법은 다음과 같습니다.

from torchtext.datasets import multi30k


multi30k.URL["train"] = "https://raw.githubusercontent.com/neychev/small_DL_repo/master/datasets/Multi30k/training.tar.gz"
multi30k.URL["valid"] = "https://raw.githubusercontent.com/neychev/small_DL_repo/master/datasets/Multi30k/validation.tar.gz"
multi30k.URL["test"] = "https://raw.githubusercontent.com/neychev/small_DL_repo/master/datasets/Multi30k/mmt16_task1_test.tar.gz"

Contacts

About

《파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습》 예제 코드

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •