본문 바로가기

분류 전체보기43

Transformer를 이해하고 구현해보자! (2) 이전글 : Transformer를 이해하고 구현해보자! (1) 다음글 : Transformer를 이용한 번역모델 구축 저번 포스팅에서는 Transformer의 구성요소인 Positional Encoding, Multi-Head Attention, LayerNorm, Feed-Forward에 대해 알아보고 구현해보았습니다. 이번 포스팅에서는 저번 포스팅에 이어 Encoder와 Decoder를 구현한 뒤, 전체 모델인 Transformer를 구현해보겠습니다. 사실 구현에 필요한 핵심적인 부분은 모두 저번 포스트에서 다루었기 때문에 이번 포스트에서는 전에 구현한 클래스들을 이어붙이는 작업이 주를 이룹니다. +) 다음 포스팅에서는 이번에 구현한 Transformer 모델을 이용하여 한-영 번역기 모델도 학습을 .. 2022. 1. 21.
[Server] SSH를 이용하여 집에 있는 컴퓨터와 연결해서 사용하기 현재 제 컴퓨터들의 OS는 집에선 Window11버전을 쓰고 있으며 밖에선 Linux를 쓰고 있고 노트북은 Mac을 사용하고 있습니다. 저도 가끔은 카페같은곳에 가서 코딩을 하고 싶은 날이 있지만, 집에 있는 컴퓨터에 SSH세팅을 안해둬서 포기한 적이 몇번 있었습니다. 그래서 이번에 SSH를 이용하여 밖에서도 집에 있는 컴퓨터 환경을 쓰기 위해서 연결해보았습니다. *본 포스트는 VsCode에서 SSH를 이용하여 컴퓨터를 연결해서 사용하는 방법에 대해 이야기 합니다! #1. OpenSSH 설치하기 찾아보니 Window 환경에서 SSH 서버를 실행시켜주는 좋은 프로그램을 '이미' 지원하고 있었습니다. 바로 OpenSSH인데요. 이걸 설치하기 위해서는 다음과 같이 설정 > 앱 > 선택적 기능 들어가신 뒤, '.. 2021. 11. 23.
Pytorch 버전 확인하기 코딩을 하다가 'pytorch-lightning' 이라는 라이브러리를 사용해보려고 설치했는데 무슨 "Segmentation fault (core dumped)" 라는 에러가 뜨기도 하고 "Import error ~ undefined symbol ~~" 과 같은 에러도 발생해서 StackOverflow,Github, 등등을 돌아다니던 중 유용한 코드가 있길래 가져왔습니다! $python -m torch.utils.collect_env 위 커맨드를 입력하면 Pytorch의 버전은 물론 CUDA 버전 및 torch.cuda.is_available() 의 정보도 알려주며 torch와 관련된 라이브러리의 버전 정보까지(중요) 알려줍니다. 상당히 종합적인 정보를 볼 수 있어서 버전 충돌과 같은 이슈를 해결하는데 어.. 2021. 11. 5.
Transformer를 이해하고 구현해보자! (1) 다음 글 : Transformer를 이해하고 구현해보자! (2)이번 포스트에서는 Transformer의 시초(?)인 'Attention is all you need' 라는 논문에서 나온 모델에 대해 나름대로 이해한 내용을 정리하며 그 내용을 토대로 Pytorch로 구현해보고자 합니다.Transformer는 크게 Encoder(왼쪽) 와 Decoder(오른쪽) 으로 구성되어 있습니다. 이번 포스트에서는 Encoder와 Decoder에서 모두 사용하는 Positional Encoding, Multi-Head Attention, Add&Norm 그리고 Feed-Forward에 대해 설명하며, 다음 포스트에서는 본격적으로 Encoder layer와 Decoder Layer를 정의하고 학습까지 진행해보도록 하곘습.. 2021. 10. 25.
[Pytorch] CNN을 이용한 문장 분류 모델 구현하기 이전 포스트에 설명한 CNN을 기반으로, 이번엔 직접 데이터 전처리부터 시작해서 CNN을 이용한 문장 분류까지의 이야기를 해보려고 합니다! 데이터는 한글 데이터 중 널리 알려진 "네이버 영화 리뷰"를 사용합니다! 우선 제가 구현한 컴퓨터의 라이브러리 버전들은 다음과 같습니다. OS : Linux Ubuntu 20.04 LTS python = 3.8.5 pytorch = 1.8.0 torchtext = 0.9.0 #Step 1. 데이터 다운받기 '네이버 영화 리뷰' 데이터는 https://github.com/e9t/nsmc/ 에서 다운받을 수 있습니다! 다운 받으시면 모델 훈련에 사용할 'ratings_train.txt' 파일과 모델 테스트에 사용할 'ratings_test.txt' 를 보실 수 있습니다... 2021. 8. 12.
[Python] 가상환경(Virtual Environment) 세팅하기 어느 날 평화롭게 코드를 짜던 도중 예상치 못한 오류가 발생했다. 에러의 내용을 살펴보면 새롭게 설치한 라이브러리가 하나 있는데, 해당 라이브러리를 설치하는 과정에서 기존에 설치한 라이브러리의 버전을 바꾸게 되었고, 그 결과로 기존에 깔려있던 다른 라이브러리와 버전 호환이 안된다는 내용이었습니다..ㅜㅜ 지금까지 그냥 하나의 환경에서 잘 쓰고 있던 나에게는 당장 급하게 가상 환경을 세팅 해야만 했습니다. 그래서 이왕 가상 환경을 세팅하는 겸, 나중에 또 찾아볼것이 명확하기에 이참에 정리 해 보고자 합니다. 본 포스트에서 다루는 내용은 다음과 같습니다. 가상환경 생성 및 실행 (종료 포함) 가상환경 복사 설치한 가상환경 목록 확인 가상환경 삭제 1. 가상환경 생성 및 실행(종료) 새로운 가상환경을 만들기 위.. 2021. 8. 4.
CNN(Convolutional Neural Network) 이해하기 #1. Introduction 이번 포스트에서는 CNN에 대해 설명드리려고 합니다. CNN은 이미지 처리나 음성인식등의 분야에서 널리 쓰이는 기법입니다. 기존의 DNN같은 경우엔 Fully-connected된 계층을 사용하였지만, CNN같은 경우엔 Convolution layer(합성곱 계층)과 pooling layer(풀링 계층)이 추가되는것이 특징입니다. 아래 예시는 일반적인 CNN의 구조를 나타내고 있습니다.(중간에 Activation은 생략되었습니다.) 그림을 살펴보면 Convolution layer와 Pooling layer가 한세트로 묶여서 여러번 층을 구성한것을 확인할 수 있으며, 마지막으로는 Fully connected layer로 마무리하는 구조입니다. 그렇다면 Convolution 계층.. 2020. 2. 5.