분류 전체보기

Vision Transformer(1): Theory
차근차근 이해하는 Transformer에 이어 Transformer를 Vision 분야에 적용한 Vision Transformer(ViT)을 이해하고 코드로 구현해보겠습니다. Introduction 자연어 처리 분야에서 Transformer는 표준 모델이 된지 오래이지만, Vision 분야에서는 Attention이 Convolotional Network와 함께 사용되거나, Convolutional Network의 일부가 Attention으로 대체되는 정도에 그쳤습니다. 이런 가운데 Dosovitskiy, Alexey, et al. (2020)은 Vision 문제를 Convolutional Network 대신 Transformer만을 이용하여 해결하는 방법을 제시하였습니다. 그럼 3차원 데이터인 이미지 데..
![[Python] Effective Python, 2nd | Ch2. 리스트와 딕셔너리 - (1) 리스트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaqM9m%2FbtrEbDM6ZNE%2FGtQDm6h4YKFMh7VTdkyRZk%2Fimg.jpg)
[Python] Effective Python, 2nd | Ch2. 리스트와 딕셔너리 - (1) 리스트
본 문서는 파이썬 코딩의 기술(원제: Effective Python: 59 Specific Ways to Write Better Python, 브렛 슬라킨 저, 오현석 역, 길벗 2020. 10. 30)을 공부 목적으로 정리한 글입니다. 필요한 부분만 발췌한 개인 정리용 글이기 때문에 보다 상세한 내용을 알고 싶으시다면 책을 직접 읽어보시길 권해드립니다. (네이버 도서 링크) 파이썬 코딩의 기술 아마존 파이썬 프로그래밍 분야 베스트셀러, 〈Effective Python〉 전면 개정 증보판! 파이썬의 매력과 강점을 이용해 강력하고 우수한 성능의 코드를 작성하는 90가지 방법!파이썬다운 방식으로 프 book.naver.com Better Way 11. 시퀀스를 슬라이싱하는 방법을 익혀라 - __getitem..
![[Python] Effective Python, 2nd | Ch1. 파이썬답게 생각하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTrbJm%2FbtrD4Ut5xOb%2FA7Me9w34bQnYkFj8c7L3fK%2Fimg.jpg)
[Python] Effective Python, 2nd | Ch1. 파이썬답게 생각하기
본 문서는 파이썬 코딩의 기술(원제: Effective Python: 59 Specific Ways to Write Better Python, 브렛 슬라킨 저, 오현석 역, 길벗 2020. 10. 30)을 공부 목적으로 정리한 글입니다. 필요한 부분만 발췌한 개인 정리용 글이기 때문에 보다 상세한 내용을 알고 싶으시다면 책을 직접 읽어보시길 권해드립니다. (네이버 도서 링크) 파이썬 코딩의 기술 아마존 파이썬 프로그래밍 분야 베스트셀러, 〈Effective Python〉 전면 개정 증보판! 파이썬의 매력과 강점을 이용해 강력하고 우수한 성능의 코드를 작성하는 90가지 방법!파이썬다운 방식으로 프 book.naver.com Better Way 1. 사용 중인 파이썬의 버전을 알아두라 Better Way 2..
[AWS] CLI 환경에서 MFA 인증하기
MFA가 설정되어 있는 경우 CLI 환경에서 AWS 관련 작업을 진행하기 위해서는 자격 증명이 되어야 합니다. 이번 글에서는 세션 토큰을 이용하여 임시로 보안 자격 증명을 받는 방법을 알아보겠습니다. (Optional) 현재 사용 중인 IAM 사용자/역할 확인하기 $ aws sts get-caller-identity 아래 명령어를 통해 임시 세션 토큰 발급 # 기존 IAM 사용자 $ aws sts get-session-token --serial-number --token-code # 기존 IAM 사용자가 아닌 다른 사용자를 지정해야할 경우 $ aws --profile [별칭] sts get-session-token --serial-number --token-code MAF가 등록된 장치의 ARN과 MFA..
[Python] Class에서 특정 문자열로 시작하는 Method 찾기
파이썬에서 Class 내에서 특정 문자열로 시작하는 이름을 가진 Method를 확인하는 방법을 알아보겠습니다. 사용 함수 dir() dir() 함수를 이용하면 입력된 Class 또는 Instance 내 모든 Attribute의 이름이 담긴 리스트가 반환됩니다. callable() Callable 여부에 따라 주어진 Attribute가 Class / Instance Variable와 Method 중 어느 것에 해당하는지 식별할 수 있습니다. Example 다음과 같이 정의된 Class가 존재한다고 가정하겠습니다. class Example: class_variable = 5 def __init__(self): self.instance_varibale = 3 def say_hello(self): return ..

차근차근 이해하는 Transformer(5): Positional Encoding
지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. 이번 글에서는 Transformer에서 다루지 않은 마지막 요소인 Positional Encoding에 대해 알아보겠습니다. Positional Encoding Positional Encoding이란 말 그대로 위치의 Representation을 벡터로 표현한 것을 말합니다. 조금 더 엄밀하게 표현한다면 $A=[a_0, a_1, \cdots, a_n]$가 주어졌을 때 A의 Positional Encoding은 각 원소의 위치와 ..

차근차근 이해하는 Transformer(4): Masked Multi-Head Attention과 Decoder
지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. 이번 글에서는 Encoder에 이어서 Transformer를 구성하는 또 다른 Building Block인 Decoder의 구성 요소를 하나씩 살펴보겠습니다. Revisit: Transformer의 전체 구조 지난 번에 보여드린 Transformer의 전체 구조 그림을 보면 Decoder가 대부분 익숙한 이름을 가진 요소들로 이루어져 있음을 알 수 있습니다. 하지만 조금 다른 부분도 존재합니다. 첫 번째 Multi-Head At..

차근차근 이해하는 Transformer(3): Multi-Head Attention과 Encoder
지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수 많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. 이번 글에서는 Transformer의 Encoder를 이해하기 위한 마지막 요소인 Multi-Head Attention에 대해 알아보겠습니다. Multi-Head Self Attention 사실 Multi-Head (Self) Attention은 지난 글에서 다룬 Single-Head (Self) Attention을 여러 개 이용하는 것에 불과합니다. 하나의 Attention Value를 이용하는 대신 여러 개의 Attenti..
[PyTorch] model.train() vs. model.eval() vs. torch.no_grad()
PyTorch 코드를 보면 자주 나오는 model.train(), model.eval(), 그리고 torch.no_grad()에 대해서 간단히 정리해봤습니다. model.train() 학습할 때와 추론할 때 다르게 동작하는 Layer들을 Training mode로 바꿔줍니다. 예를 들어 Batch Normalization Layer는 Batch Statistics를 이용하게 되고, Dropout Layer가 주어진 확률에 따라 활성화됩니다. model.eval() 학습할 때와 추론할 때 다르게 동작하는 Layer들을 Evaluation(Inference) mode로 바꿔줍니다. 예를 들어 Batch Normalization Layer는 학습할 때 사용된 Batch Statistics를 통해 결정된 Run..

차근차근 이해하는 Transformer(2): Single-Head Attention으로 이해하는 Encoder
지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수 많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. Transformer에서 사용하는 Attention을 다룬 지난 글에 이어 이번에는 Transformer의 Encoder가 어떻게 구성되었는지 정리해보겠습니다. Transformer의 전체 구조 Transformer는 Encoder, Decoder Layer가 Attention과 Feed-Forward Network로 구성된 Encoder-Decoder 구조를 따르고 있습니다. Transformer를 이해하는데 가장 병목이 되..