본문 바로가기
DNN with Keras/NLP with Hugging Face

임베딩 전송 (Transferring Embedding)

by goatlab 2024. 1. 11.
728x90
반응형
SMALL

임베딩 전송 (Transferring Embedding)

 

 

이제 간단한 원핫 인코딩을 수행하는 임베딩 룩업을 하드코딩하는 방법을 살펴본다. 원핫 인코딩은 입력된 정수 값 0, 1, 2를 각각 벡터 [1, 0, 0], [0, 1, 0], [0, 0, 1]로 변환한다. 다음 코드는 임베딩 레이어의 무작위 조회 값을 이 원핫 인코딩에서 영감을 얻은 조회 테이블로 대체했다.

 

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding
import numpy as np

embedding_lookup = np.array([
    [1, 0, 0],
    [0, 1, 0],
    [0, 0, 1]
])

model = Sequential()
embedding_layer = Embedding(input_dim=3, output_dim=3, input_length=2)
model.add(embedding_layer)
model.compile('adam', 'mse')
embedding_layer.set_weights([embedding_lookup])

 

임베딩 레이어에는 다음과 같은 파라미터가 있다.

 

  • input_dim=3 : 세 가지 정수 범주형 값이 허용된다.
  • output_dim=3 : 세 개의 열은 하나의 핫 인코딩당 세 개의 가능한 값을 가진 범주형 값을 나타낸다.
  • input_length=2 : 입력 벡터에 이러한 범주형 값 중 두 가지가 있다.


두 개의 범주형 값으로 신경망에 쿼리하여 조회가 수행되는지 확인한다.

 

input_data = np.array([
    [0, 1]
])

pred = model.predict(input_data)
print(input_data.shape)
print(pred)
1/1 [==============================] - 0s 67ms/step
(1, 2)
[[[1. 0. 0.]
  [0. 1. 0.]]]
728x90
반응형
LIST

'DNN with Keras > NLP with Hugging Face' 카테고리의 다른 글

임베딩 훈련 (Training Embedding)  (0) 2024.01.11
Embedding Layers  (0) 2024.01.11
Training HUGGING FACE models  (0) 2024.01.11
Tokenizers  (0) 2024.01.10
Hugging Face API (2)  (0) 2024.01.10