본문 바로가기

Programming/(Python)(Ubuntu)

BERT 출처 : http://docs.likejazz.com/bert/#fn:fn-2 BERT 알아보기 BERT 는 Bidirectional Encoder Representations from Transformers 의 약자로 2018년 10월에 발표되었습니다. 오픈소스화 까지 이루어진 구글의 새로운 Language Representation Model 입니다. 인간은 직접 혹은 간접 경험을 통해 특정 상황이나 문제에 대한 가장 효과적인 해결책을 찾을 수 있는 지혜를 얻을 수 있습니다. BERT의 모델은 Transformer를 기반으로 합니다. 이 그림은 Transformer 논문에 있는 모델 아키텍처입니다. 인코더-디코더 모델은 언뜻 보기엔 상당히 복잡합니다. BERT는 이 중에서도 왼쪽, 인코더만 사용하는 .. 더보기
Transformer 및 Torchtext를 사용한 Seq2Seq 모델 출처 https://pytorch.org/tutorials/beginner/transformer_tutorial.html#sequence-to-sequence-modeling-with-nn-transformer-and-torchtext Transformer 모델은 더 많은 병렬화가 가능하지만 많은 Seq2Seq 문제에서 품질이 우수하다는 것이 입증되었습니다. nn.Transformer 모듈은 입력과 출력 간의 전역 종속성을 그리기 위해 Attention 메커니즘(nn.MultiheadAtention으로 구현 된 다른 모듈)에 전적으로 의존합니다. 모델 정의 nn.TransformerEncoder 언어 모델링 업무에 대한 모델을 학습 합니다. 언어 모델링 작업은 주어진 단어(또는 단어 시퀀스)가 단어 시퀀.. 더보기
Seq2Seq 알고리즘 + Attention 코드 출처 : https://tutorials.pytorch.kr/intermediate/seq2seq_translation_tutorial.html Seq2Seq 코드 예제. 필요한 패키지 선언 from __future__ import unicode_literals, print_function, division from io import open import unicodedata import string import re import random import torch import torch.nn as nn from torch import optim import torch.nn.functional as F device = torch.device("cuda" if torch.cuda.is_available().. 더보기
Seq2Seq 알고리즘 이해 + Attention 1. Sequence to Sequence seq2seq 는 번역기에서 대표적으로 사용되는 모델입니다. 설명하는 내용의 대부분은 RNN 내용들입니다. 단지 이것을 가지고 어떻게 조립했느냐에 따라서 seq2seq 라는 구조가 만들어집니다. 위의 그림은 seq2seq 모델로 만들어진 번역기가 'I am a student'라는 영어 문장을 입력 받아, 'je suis étudiant' 라는 프랑스 문장을 출력하는 것을 보여줍니다. seq2seq 모델의 내부 모습은 이렇게 구성되어 있습니다. seq2seq 는 크게 두 개로 구성되는데, 인코더(Encoder)와 디코더(Decoder)입니다. 인코더(Encoder)는 입력 문장의 모든 단어들을 순차적으로 입력받은 뒤에 마지막에 이 모든 단어 정보들을 압축해서 하나.. 더보기
PyTorch Dataset Class, transform 설명 PyTorch는 데이터를 불러오는 과정을 쉽게해주고, 또 잘 사용한다면 코드의 가독성도 보다 높여줄 수 있는 도구들을 제공합니다. scikit-image : 이미지 Input / Output 와 변형을 위해 필요합니다. pandas : CSV 파일 피싱을 보다 쉽게 해줍니다. Dataset Class torch.utils.data.Dataset 은 데이터셋을 나타내는 추상클래스입니다. 데이터넷은 Dataset에 상속하고 아래와 같이 오버라이드해야합니다. len(dataset) 에서 호출되는 __len__ 은 데이터셋의 크기를 리턴해야합니다. dataset[i] 에서 호출되는 __getitem__ 은 i 번째 샘플을 찾는데 사용됩니다. 데이터셋 클래스를 만들어보도록 하겠습니다. __init__을 사용해서 .. 더보기
우분투 18.04 PyTorch 기초. Fashion MNIST 데이터를 이용한 Neural Networks 구현하기 본 내용은 Anaconda 와 Jupyter Notebook / Lab 을 이용하였습니다. 구현 환경이 설정되지 않으셨다면 아래 링크를 클릭하셔서 환경을 설치해줍니다. 모델 구현이 목적입니다. 실제로 어떻게 수정하여 쓰느냐에 따라 적용할 수 있는 방법입니다. [Programming/(Python)(Ubuntu)] - 우분투 18.04 아나콘다 설치 (Ubuntu 18.04 Anaconda Install) 우분투 18.04 가상환경 설정 (Ubuntu 18.04 virtual environments) [Programming/(Python)(Ubuntu)] - 우분투 18.04 주피터 노트북/랩 실행하기 및 외부 접속 Ubuntu 18.04 Jupyter Using Notebook/Lab and outsid.. 더보기
우분투 vi 에디터 사용법 Vim 설치 sudo apt-get install vim 터미널에 vi 를 치면 vi 버전 및 기타 설명이 나옵니다. 기본적으로 vi 는 명령어 모드를 통해 작업할 수 있습니다. vi.txt 를 만들어서 테스트 해볼 수 있습니다. 각 모드에서 명령어 모드로 나오고 싶을 경우 ESC 2번을 누르면 됩니다. 다음은 명령어 모음입니다. 입력모드 - i 입력모드 - a 왼쪽으로 이동 - h 아래로 이동 - j 위로 이동 - k 오른쪽으로 이동 - l 한 글자 삭제 - x 한 단어 삭제 - dw 한 줄 삭제 - dd n번째 줄 삭제 - ndd 현재 커서 위치부터 끝까지 : D 검색 - /(내용) 현재줄 복사하기 - yy n번째 줄 복사하기 - nyy 붙여넣기 - p undo(실행취소) - u 변경 사항을 저장하지.. 더보기
Sentence piece 를 이용한 문장 분류기 만들기 다음 내용과 같이 분류하려는 Text 및 Label 을 가지고 계신다면 따라해보십시오. 개요 DailyDialog 데이터 세트가 있습니다. 데이터는 대화 텍스트입니다. DailyDialog_act : 각 DailyDialog 의 각 행에 매치되는 대화 상자 동작 번호가 존재합니다. { 1 : 알림, 2 : 질문, 3: 지시, 4 : 공통 } DailyDialog_emotion : 각 DailyDialog 의 각 행에 매치되는 대화 상자 감정 번호가 존재합니다. { 0 : 감정 없음, 1 : 분노, 2 : 혐오, 3 : 두려움, 4 : 행복, 5 : 슬픔, 6 : 놀라움 } DailyDialog_text 를 Train과 Test로 나누고 전처리 합니다 전처리 후 Tokenize 후 ... 1. Data s.. 더보기