본문 바로가기

AI16

[Pytorch] Pre-traing Vision Transformer로 Fine-tuning : 이미지 분류기 🚀 Model - Pytorch에서 제공하는 ViT model 사용(Vit_b_16) - Link : Pre-trained weights, github code🚀 Dataset- Kaggel의 Animal-10 dataset을 강아지와 고양이 이미지만 뽑아서 사용🚀 Task- 강아지와 고양이 이미지를 분류 1. 전체 실행 흐름 (Main)전체 코드의 흐름은 아래와 같다.def main(): # 데이터 준비 FINE_TUNE_N = 1024 # 각 클래스별로 fine tuning에 사용할 이미지 수 PREDICT_N = 100 # 예측에 사용할 전체 이미지 수 prepare_fine_tuning_dataset(animal_dir, fine_tuning_dir, F.. 2025. 3. 4.
[Transformer] C로 Transformer 구현하기 Project GoalTransformer를 C로 구현하기- 검증 방법 : basic이 되는 python code와의 output 비교를 통해 정확도 평가What is the basis of this project? Architecture : TransformerPaper : Attention is All You Need Transformer Pytorch Code : harvaldnlp   (+) My github code : https://github.com/je0nsye0n/Transformer_C Pytorch Code 수정기본적인 틀은 Pytorch코드와 C코드의 output이 같은지 확인하는 것이다.이 조건이 성립되기 위해서는 동일한 아키텍처를 설계해야 하며, Input과 Linear 연산에서.. 2025. 2. 26.
Attention is All You Need(Transformer) Pytorch로 구현 Attention is All You Need 구현본 포스팅은 2018년 harvardnlp(The Annotated Transformer (harvard.edu))에 게시된 “Attention is All You Need” paper를 바탕으로 실제 PyTorch로 구현하는 내용을 리뷰하는 것이다. 또한, 본 코드는 OpenNMT 패키지를 기반으로 한다.Prelimsimport numpy as npimport torchimport torch.nn as nnimport torch.nn.functional as Fimport math, copy, timefrom torch.autograd import Variableimport matplotlib.pyplot as pltimport seabornseabor.. 2025. 1. 14.
[Transformer 정리] 03. Positional Encoding과 특수 토큰 Positional Encoding(위치 인코딩)✅ 위치 인코딩 방식의 필요성트랜스포머의 특징 : 시퀀스의 각 단어는 임베딩 처리되어 벡터 형태로 변환됨 / 시퀀스를 병렬 구조로 처리→ 따라서, 단어의 순서 정보를 제공하지 않는다. 때문에 위치 정보를 임베딩 벡터에 추가하여 단어의 순서 정보를 모델에 반영해야 한다. 이를 위해 트랜스포머는 위치 인코딩 방식을 사용한다. ✅ 위치 인코딩이란?위치 인코딩 : 입력 시퀀스의 순서 정보를 모델에 전달하는 방법 (각 단어의 위치 정보를 나타내는 벡터를 더하여 임베딩 벡터에 위치 정보를 반영)인코딩 벡터는 sin 함수와 cos 함수를 사용하여 생성되며, 이를 통해 임베딩 벡터와 위치 정보가 결합된 최종 입력 벡터를 생성한다. 위치 인코딩 벡터를 추가함으로써 모델은 .. 2025. 1. 13.
[Transformer 정리] 02. 트랜스포머 기본 구조 트랜스포머는 인코더와 디코더 두 부분으로 구성되어 있으며, 각각 N개의 트랜스포머 블록(Transformer Block)으로 구성된다. 이 블록은 멀티 헤드 어텐션(Multi-Head Attention)과 순방향 신경망(Feed Forward)으로 이루어져있다.이제 각각을 간단하게 살펴보자.Multi-Head Attention입력 시퀀스에서 쿼리(Query), 키(Key), rkqt(Value) 벡터를 정의하여 입력 시퀀스들의 관계를 셀프 어텐션(Self Attention)하는 벡터 표현 방법이다. 이 과정에서 쿼리와 각 키의 유사도를 계산하고, 해당 유사도를 가중치로 사용하여 값 벡터를 합산한다. → 해당 과정에서 생산된 어텐션 행렬은 각 단어의 임베딩 벡터를 대체하는 것이다. # Q, K, V란?Qu.. 2025. 1. 13.
[Transformer 정리] 01. 개요 트랜스포머(Transformer)는 2017년 코넬 대학의 아시시 바스와니 등의 연구 그룹이 발표한 “Attention is All Yout Need” 논문을 통해 소개된 신경망 아키텍처이다.특징 : 트랜스포머 모델의 주요 기능 중 하나는 순환 신경망과 같은 순차적 방식이 아닌 병렬로 입력 시퀀스를 처리하는 기능이다. 긴 시퀀스의 경우 트랜스포머 모델을 순환 신경망 모델보다 훨씬 더 빠르고 효율적으로 처리한다.구조       Q. Sequential Processing이나 Recurrent Connections에 의존하지 않고 입력 토큰 간의 관계를 처리할 수 있는 방법은?       A. Self Attention 기법트랜스포머 모델 분류→ 앞으로 소개할 트랜스포머 기반 모델들은 오토 인코딩(Auto-.. 2024. 12. 26.