А датасет при обучения для первого энкодера, и для итоговой сетки использующей этот энкодер был одинаков? Или брался датасет для энкодера эквивалентный чему то типа GloVe по размеру, а в обучении итоговой сетки было что то существенно меньшее, и всё равно "всё плохо"?
Стек из двух LSTM слоев, с прослойкой из batch normalization, если я правильно понял синтаксис R? Интересно, а у меня никогда такая конструкция качество не повышала.
Comments 9
Reply
Reply
У меня вот такая конструктция в некой прикладной задаче сработала (это keras в R).
Идея дать сетке самой решить что какой символ значит.
aux_input_nicname <- layer_input(shape = c(seqLengthNames), dtype = 'int32', name = 'aux_input_nicname')
emb_out_nicname <- aux_input_nicname %>%
layer_embedding(input_dim = embNames, output_dim = 50, input_length = seqLengthNames) %>%
layer_spatial_dropout_1d(drop)
## bidirectional()
lstm_out.name.forw <- emb_out_nicname %>%
layer_lstm(units = 64,
dropout = 0.2,
recurrent_dropout = 0.2,
return_sequences = T) %>%
layer_batch_normalization() %>%
layer_lstm(units = 32,
dropout = 0.2,
recurrent_dropout = 0.2) %>%
layer_batch_normalization()
lstm_out.name.back <- emb_out_nicname ( ... )
Reply
Reply
Leave a comment