Keras. o Gömme katmanını kullanmamaya modeli nasıl değiştirilir

oy
0

currectly bir gömme katmanıyla eğitimli bir BLSTM RYSA yoktur. Ben girdi dizileri üzerinde tamamen yetiştirmek bunu değiştirmek istiyorum. Bir şekilde değişiklikler yapmaya başlamak için nereye tamamen emin değilim.

Herkes önerilerinizi var mı?

embedding_layer = Embedding(len(word2int) + 1,
                            EMBEDDING_DIM,
                            weights=[embedding_matrix],
                            input_length=MAX_SEQUENCE_LENGTH,
                            trainable=True)
sequence_input = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32')
embedded_sequences = embedding_layer(sequence_input)

l_lstm = Bidirectional(LSTM(64, return_sequences=True))(embedded_sequences)
preds = TimeDistributed(Dense(n_tags + 1, activation='softmax'))(l_lstm)
Oluştur 27/11/2018 saat 18:20
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
1

Ben yorumlama ediyorum girişi tamamen yetiştirmek değiştirmek dizileri iki yolu vardır:

  • Ya da LSTM aslında tamsayılar yayınlanmasını istediğiniz [34, 21, 8, ...]yani doğrudan her timestep sadece 1 tamsayı olduğunu söylemek gerekir ki bu durumda dönüştürmek (batch_size, max_seq_len)için (batch_size, max_seq_len, 1)hangi kullanılarak elde edilebilir embedded_seqs = Lambda(lambda x: K.expand_dims(x, -1))(sequence_input). Bu gerçek tamsayı değerleri görmek için modeli zorlar ama tavsiye etmem.

  • Diğer bir seçenek, hiçbir eğitilebilir gömme ancak ilgili endeksinde bir 1'den her kelime için büyük bir vektör var bir sıcak kodlamak olurdu. Sen kaldırarak bunu yapabilirsiniz weights=[embedding_matrix]ve ekleme embeddings_initializer='eye'sizin için Embeddingkatman ayarı trainable=False.

Cevap 27/11/2018 saat 21:35
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more