При использовании предварительно обученной модели ElMo я получаю выходной словарь, отличный от выходного словаря, описанного в опубликованной модели tf.hub Подпись моего выходного словаря
> model = BidirectionalLanguageModel(options_file, weight_file)
> ids_placeholder = tf.placeholder('int32', shape=(None, None, max_word_length))
> ops = model(ids_placeholder)
> print (ops)
{'token_embeddings': <tf.Tensor 'bilm/Reshape_1:0' shape=(?, ?, 512) dtype=float32>,
'lengths': <tf.Tensor 'sub:0' shape=(?,) dtype=int32>,
'mask': <tf.Tensor 'Cast_1:0' shape=(?, ?) dtype=bool>,
'lm_embeddings': <tf.Tensor 'concat_3:0' shape=(?, 3, ?, 1024) dtype=float32>}
в то время как выходной словарь из tf hub
содержит:
- word_emb: символьные представления слов с формой [batch_size, max_length, 512].
- lstm_outputs1: первое скрытое состояние LSTMс shape [batch_size, max_length, 1024]
- lstm_outputs2: второе скрытое состояние LSTM с shape [batch_size, max_length, 1024].
- elmo: взвешенная сумма из 3 слоев, гдегири можно тренировать.Этот тензор имеет форму [batch_size, max_length, 1024]
- по умолчанию: фиксированное среднее объединение всех контекстуализированных представлений слов с формой [batch_size, 1024].
как я могу получить доступполя word_emb, lstm_outputs1, lstm_outputs2 ..
в словаре вывода?Я следую примеру использования для кэширования набора данных из этой ссылки