Keras에 아주 간단한 FFNN이 있습니다.Keras : softmax 출력의 정수 레이블을 허용합니다.
model = Sequential()
shared_embedding = Embedding(vocab_size, word_emb_dim, input_length=1, name='embedding')
model.add(shared_embedding)
model.add(Dropout(emb_dropout))
model.add(Dense(hidden_size, name='hidden',
kernel_constraint=max_norm(max_norm_size), activation='relu'))
model.add(shared_embedding)
model.add(Dense(vocab_size, name='output',
kernel_constraint=max_norm(max_norm_size), activation='softmax'))
model.compile(optimizer=optimizer, loss='sparse_categorical_crossentropy')
이것은 바이 그램을 예측하는 매우 단순한 단어 모델입니다. 데이터에 단어가 주어지면 모델은 다음 단어를 예측합니다.
나는 50,000의 어휘 크기를 가지고 있으며, 나는 약 11 백만 개의 바이 그램을 가지고있다. 따라서 모든 하나의 핫 인코딩 된 매트릭스에 모든 타겟을 저장할 수 없다는 것은 말할 필요도 없습니다.
내가하고 싶은 일은 대상을 정수로 직접 사용하고 keras가이를 처리하도록 강제하는 것입니다. 나는 sparse_categorical_crossentropy
으로 충분하다고 생각했지만 손실을 지정하는 것이 좋겠다고 생각했지만, 그렇지는 않았을 것입니다.
누구든지 무엇을 해야할지 알고 계십니까?