728x90
반응형
* PyTorch 공식 문서를 참고했습니다.
torch.nn.Embedding 모듈은 학습 데이터로부터 임베딩 벡터를 생성하는 역할을 합니다.
보통은 pretrain된 임베딩을 사용하는 경우도 많습니다!
임베딩을 만드는 원리는 아래 사이트에 자세한 설명이 되어 있으니 한 번 읽어보시면 좋을 것 같습니다.
간략하게 설명하자면 과정은 다음과 같습니다.
도메인 -> 정수 매핑(룩업 테이블에서 사용할 인덱스) -> 임베딩 테이블 -> 임베딩 벡터
nn.Embedding 에서는 내가 원하는 길이의 임베딩 벡터를 임의로 만들어주고 학습 과정 동안 적절한 임베딩 벡터로 조정 해줍니다.
* 기본 사용법
torch.nn.Embedding(num_embeddings, embedding_dim)
1) num_embeddings : 임베딩 사전 개수 (도메인 개수, 즉 몇 개의 임베딩을 만들 것인지)
2) embedding_dim : 임베딩 차원 크기
그 외의 여러 parameter는 필요에 따라 공식 사이트를 참고하시길 바랍니다.
* 공식 홈페이지 예제 코드
# 3 차원짜리 임베딩 10개 생성
embedding = nn.Embedding(10, 3)
# [1, 2, 4, 5], [4, 3, 2, 9]에 대한 임베딩 값 구하기
input = torch.LongTensor([[1,2,4,5],[4,3,2,9]])
embedding(input)
'''
tensor([[[-0.0251, -1.6902, 0.7172],
[-0.6431, 0.0748, 0.6969],
[ 1.4970, 1.3448, -0.9685],
[-0.3677, -2.7265, -0.1685]],
[[ 1.4970, 1.3448, -0.9685],
[ 0.4362, -0.4004, 0.9400],
[-0.6431, 0.0748, 0.6969],
[ 0.9124, -2.3616, 1.1151]]])
'''
728x90
반응형
'Programming > PyTorch' 카테고리의 다른 글
[PyTorch] Tensor와 tensor (0) | 2022.01.27 |
---|---|
[PyTorch] DataLoader의 역할 및 사용법 (0) | 2022.01.25 |
[PyTorch] Dataset Types 정리 (Map-style datasets, Iterable-style datasets) (0) | 2022.01.25 |
[PyTorch] torch.clamp 함수 (0) | 2021.11.22 |
[PyTorch] torch.nn.ModuleList()란? (0) | 2021.11.16 |