본문 바로가기

AI/PyTorch

(15)
PyTorch *.pt, *.pth, *.pkl 의 차이 파이토치에서 모델 확장자 pt, pth, pkl 은 이름만 다를 뿐, 형식의 차이는 없다. 단지 모델을 저장하는 사람의 취향 차이일 뿐
PyTorch #주피터 노트북 환경 세팅 파이토치 코랩 환경과 주피터 노트북 환경을 맞추기 1. 코랩 환경 확인 import torch import torchvision import torchtext print(f'torch version: {torch.__version__}') print(f'torchvision version: {torchvision.__version__}') print(f'torchtext version: {torchtext.__version__}') 2. 파이토치 설치 코랩 환경과 맞추기 위해 1.10.0 버전을 찾아 설치, GPU에 따른 쿠다 툴킷 버전은 개인별로 다를 수 있음 자신의 환경에 맞춰 관리자 권한의 cmd 창에서 실행 v1.10.0 Conda OSX # conda conda install pytorch==1..
PyTorch #다대일 RNN 딥 러닝을 이용한 텍스트 분류의 작업 및 구성 * 텍스트 분류는 다대일 문제에 속함 텍스트 분류 프로세스(다대일 RNN) 1. 데이터 분석 - 어떤 문제인지?, 지도 학습인지, 비지도 학습인지 - 데이터의 양은? - 데이터의 구성은? (텍스트의 언어, 라벨의 구성) 2. 하이퍼 파라미터 설정 - 배치 사이즈, 학습율, 에포크 3. 데이터 전처리 - 데이터 분할 - 워드 임베딩 - 단어 집합 생성 5. 모델 구현 - 모델 클래스 생성 - 모델 설계 - 옵티마이저 설정 - 모델 훈련 함수 생성 - 모델 평가 함수 생성 6. 모델 훈련 7. 모델 평가 IMDB 리뷰 감성 분류 1. 세팅 # 도구 임포트 import os import torch import torch.nn as nn import torch.nn..
PyTorch #다대다 RNN 다대다 RNN - 모든 시점의 입력에 대해서 모든 시점에 출력을 함 - 대표적으로 품사 태깅, 개체명 인식 등에 사용 1. 문자 단위 RNN(Char RNN) - RNN의 입출력 단위가 단어 레벨이 아닌 문자 레벨 - 도구 임포트 # 도구 임포트 import torch import torch.nn as nn import torch.optim as optim import numpy as np - 훈련 데이터 전처리 # sputnik!!를 입력 받으면 satellite 를 출력하는 RNN 구현 # 1. 입력 데이터와 레이블 데이터에 대해 문자 집합(vocabulary) 생성, 이때 문자 집합은 중복을 제거한 문자들의 집합 input_str = 'sputnik!!' label_str = 'satellite' ..
PyTorch #순환 신경망(RNN) 순환 신경망(Recurrent Neural Network, RNN) - RNN은 입력과 출력을 시퀀스 단위로 처리하는 시퀀스 모델임 1. 순환 신경망(RNN)의 특징 - RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로도 보내 다시 은닉층 노드의 다음 계산의 입력으로 보냄 - 셀(cell)은 RNN의 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드, 이전의 값을 기억하려고 하는 일종의 메모리 역할을 수행하므로 메모리 셀 또는 RNN 셀이라 표현 - 은닉층의 셀은 각각의 시점(time step)에서 바로 이전 시점의 셀에서 나온 값을 자신의 입력으로 사용 - 은닉 상태(hidden state)는 셀이 출력층 방향 또는 다음 시점의 자신에게 보내는 값 - RNN은 ..
PyTorch #원-핫 인코딩 #워드 임베딩 원-핫 인코딩 1. 원-핫 인코딩이란? 표현하고 싶은 단어의 인덱스에 1의 값, 나머지 인덱스에는 0을 부여하는 벡터 표현 방식이며, 이렇게 표현된 벡터를 원-핫 벡터라고 부름 2. 원-핫 인코딩 프로세스 3. 원-핫 인코딩의 한계 - 단어 개수가 늘어날 수록 벡터를 저장하기 위한 공간이 늘어남(저장 공간 및 연산 측면에서 비효율) - 단어의 유사도를 표현할 수 없음 4. 한국어 문장을 원-핫 벡터로 생성하는 예시 문장: 오늘 아침 커피는 맛있습니다. - 한국어 형태소 분석을 위한 konlpy 설치 # 형태소 분석을 위한 konlpy 설치 !pip install konlpy - 형태소 분석기로 문장 토큰화 # 형태소 분석기로 문장을 형태소 단위로 나눔(문장 토큰화) from konlpy.tag impor..
PyTorch #자연어 데이터 전처리 토큰화 : 주어진 텍스트를 단어나 문자 단위로 자르는 것 단어 집합 생성 : 중복을 제거한 텍스트의 총 단어(문자)의 집합 생성 정수 인코딩 : 단어를 컴퓨터가 이해하기 쉽게 고유한 정수로 변환 패딩 : 길이가 다른 문장들을 모두 동일한 길이로 바꾸는 작업 벡터화 : 고유한 정수로 맵핑된 단어를 원-핫 인코딩이나 워드 임베딩으로 벡터화 시킴(주로 워드 임베딩 사용) 1. 토큰화(Tokenization) - 영어의 경우 spaCy와 NLTK로 토큰화 진행 예) "A Dog Run back corner near spare bedrooms" 라는 문장을 spaCy와 NLTK로 토큰화 수행 spaCy # spaCy 예 import spacy spacy_en = spacy.load('en') def tokeniz..
PyTorch #합성곱 신경망(CNN) 합성곱 신경망(Convolutional Neural Network) - 이미지 처리에 탁월한 성능 - 크게 합성곱층(Convolution layer)와 풀링층(Pooling layer)로 구성 - 이미지의 공간적인 구조 정보를 보존하면서 학습한다 01. 합성곱과 풀링 채널(Channel) - 이미지는 높이, 너비, 채널(RGB 성분)의 3차원 텐서 - 가로 세로 28 픽셀의 흑백 이미지는 28 x 28 x 1 의 크기를 가지는 3차원 텐서 - 가로 세로 28 픽셀의 컬러 이미지는 28 x 28 x 3 의 크기를 가지는 3차원 텐서 합성곱 연산(Convolution operation) - 합성곱층은 합성곱 연산을 통해 이미지의 특징을 추출하는 역할 - 커널(kernel) or 필터(filter)라는 n x..

반응형