Предположительно, Elmo - это вложение слова.Таким образом, если входные данные представляют собой предложение или последовательность слов, выходные данные должны представлять собой последовательность векторов.По-видимому, это не так.
В приведенном ниже коде используются keras и tenorflow_hub.
a = ['aaa bbbb cccc uuuu vvvv wrwr', 'ddd ee fffff ppppp']
a = np.array(a, dtype=object)[:, np.newaxis]
#a.shape==(2,1)
input_text = layers.Input(shape=(1,), dtype="string")
embedding = ElmoEmbeddingLayer()(input_text)
model = Model(inputs=[input_text], outputs=embedding)
model.summary()
Класс ElmoEmbedding имеет значение https://github.com/strongio/keras-elmo/blob/master/Elmo%20Keras.ipynb.
b = model.predict(a)
#b.shape == (2, 1024)
По-видимому,вложение назначает 1024-мерный вектор каждому предложению.Это сбивает с толку.
Спасибо.