inflearn logo
강의

Course

Instructor

From the concept of the latest deep learning technology Vision Transformer to Pytorch implementation

ViT 모델 구현 코드에서 질문이 있습니다

731

ingbeeeded7104

44 asked

0

안녕하세요 ViT 모델 구현에서 질문이 있습니다

1. 강의 중 출력 값이 커짐에 따라서 Softmax 때 문제가 발생해서 사용한다는 Scale에서 선생님 코드가 아래와 같이 되어 있습니다

self.scale = torch.sqrt(latent_vec_dim*torch.ones(1)).to(device)

그런데 강의자료를 보면 

head dimension으로 적용해야 하는 것이 아닌가 해서요

즉, self.scale = torch.sqrt(self.head_dim * torch.ones(1)).to(self.device)

확인해주시면 감사하겠습니다!

2. Transformer Encoder에서 MLP 구성할 때 FC층 2개와 GELU를 사용하는데, GELU는 왜 첫번째 FC에서만 Activation을 하고, 두번째 FC 출력 이후에는 생략하는 것인가요? 생략한다면 이유가 무엇이고, 훈련하는데 차이가 있을까요?

논문에서도 GELU 관련한 것은 "The MLP contains two layers with a GELU non-linearity" 문장만 있어서 조금 헷갈려서 질문을 드립니다

 

pytorch 컴퓨터-비전 딥러닝 vision-transformer

Answer 2

1

dlbro

안녕하세요. 유영재님!

좋은 질문입니다.

1. 맞습니다. 오타입니다 ㅠㅠ 지적 감사드립니다.

2. 활성화 함수 종류나 적용 위치는 경험 기반으로 세팅을 한 것으로 보입니다. 참고로 원래 트랜스포머는 ReLU를 사용하였습니다.

 

감사합니다.

0

ingbeeeded7104

강의 자료에 나와있는 수식은 Multi-Head가 아닌 Single-Head의 경우를 표현한 것으로 알면 될까요? 그런데 코드에서는 Multi-head 계산 후 permute으로 다시 num*heads, head_dim 4차원으로 나눠주는데 그러면 scale은 Dh로 적용해야되는 것이 아닌가요?

 

mean attention distance

0

199

2

안녕하세요, vit에 관심이 많은 사람입니다.

1

233

1

positional embedding 학습이 잘 안되는 문제

1

365

1

행렬 차원 수 질문

0

315

1

Self Attention 질문 있습니다.

0

325

1

Multi-Head Attention 모델 구조에서 궁금한게 있습니다.

0

555

1

전처리 관련해서 질문이 있습니다

1

362

1

답변에 대한 추가질문이 있습니다.

1

301

1

헷갈리는게 몇개 있습니다ㅠㅠ

1

375

1

Positional Encoding, KQV 질문입니다!

2

623

1

강의 자료 슬라이드

0

738

2

비전 트랜스포머 - 최신 모델 강의에서 positional embedding

2

468

1

비전 트랜스포머 - 최신 모델' 강의에서 B*N*K 와 1*K*D 를 연산

1

401

1

'어텐션 기법 - 키, 쿼리, 밸류는 무엇인가?' 강의에서 (QK^T)

1

717

1

training

1

288

1

Image가 입력일 때 Cross Attention 결과가 궁금합니다.

0

889

1

Transformer의 input에 대해 질문드립니다.

1

415

1

ViT에 대한 전반적인 질문 드립니다!

1

394

1

Key query value관련 질문

1

567

2

Fine tuning 관련하여 질문 드립니다.

1

647

1

코드 질문

1

316

1

Dh의 의미

1

309

1

scheduler관련 질문드립니다.

2

276

1

E, Epos

0

304

1