Tensorflow에서 임베딩 레이어 작업

Aug 24 2020

누군가가 아래 언급 된 레이어의 작업과 함께 입력 및 출력을 설명해 주시겠습니까?

model.add(Embedding(total_words, 64, input_length=max_sequence_len-1))

total_words = 263

max_sequence_len = 11

차원의 수는 64입니까?

그리고이 레이어의 출력은 무엇입니까 (없음, 10, 64)

각 단어에 대해 64 차원 벡터가 아니어야합니다. 즉 (None, 263, 64)

답변

SauravMaheshkar Sep 20 2020 at 12:34

여기 에서 Tensorflow의 Embedding Layer에 대한 모든 정보를 찾을 수 있습니다 .

처음 두 매개 변수는 input_dimension및 output_dimension입니다.

  • 입력 차원은 기본적으로 모델의 어휘 크기를 나타냅니다. word_index함수의 기능을 사용하여이를 확인할 수 있습니다 Tokenizer().
  • 출력 차원은 다음 입력의 차원이 될 것입니다 Dense Layer

Embedding 레이어의 출력은 형식 (batch_size, input_length, output_dim)입니다. 그러나 input_length 매개 변수를 지정 했으므로 레이어 입력은 형식이 (batch, input_length)됩니다. 이것이 출력이 (None, 10,64) 형식 인 이유입니다.

당신의 의심을 해소하는 희망 ☺️

RyanRudes Aug 25 2020 at 13:38

에서 Embedding층 첫 번째 인수는 (상당한 차원 전형적이다) 입력 크기를 나타낸다. 두 번째 인수는 출력 차원, 즉 축소 된 벡터의 차원을 나타냅니다. 세 번째 인수는 시퀀스 길이입니다. 본질적으로 Embedding 레이어는 단순히 shape 룩업 테이블을 학습하는 것 (input dim, output dim)입니다. 이 레이어의 가중치는 해당 모양을 반영합니다. 그러나 레이어의 출력은 물론 모양이 될 것입니다 (output dim, seq length). 입력 시퀀스의 각 요소에 대한 1 차원 감소 임베딩 벡터. 예상했던 모양은 실제로 임베딩 레이어의 가중치 모양입니다.