ELMo - большая модель. Есть 2048-мерные вложения слов, 4096-мерные состояния LSTM в 2 слоях и 2 направлениях. Только это 18 КБ с плавающей запятой, 71 КБ на слово (и это намного больше: промежуточные проекции в LSTM, уровень символов CNN для представления слов). У вас есть 7 255 предложений, среднее предложение - 25 слов, это дает 12 ГБ ОЗУ, но это очень консервативная оценка.
Вам нужно разбить предложения на пакеты и обработать пакеты итеративно. Есть много способов, как это сделать, и я не знаю, какую реализацию вы используете и что именно находится в переменной sentences
. Но вы, вероятно, можете вызвать tf.split
на sentences
и получить список объектов, для которых сеанс вызова независимо, или, если вы используете tf.dataset
, вы можете использовать пакетную обработку, предоставляемую API набора данных. Вы также всегда можете разделить свои данные и использовать несколько входных файлов.