Не хватает памяти в глубокой нейронной сети - PullRequest
1 голос
/ 03 августа 2020

Я кодировал модель с помощью Tensorflow, и у меня закончилась память на моем P C, затем я пробую то же самое в Google Colab и получил тот же результат.

Моя форма набора данных изначально была такой :

(541909, 8)

Проблема в том, что в моем наборе данных есть одна строка с именем 'Description', которая выглядит так:

0     WHITE HANGING HEART T-LIGHT HOLDER
1                    WHITE METAL LANTERN
2         CREAM CUPID HEARTS COAT HANGER
3    KNITTED UNION FLAG HOT WATER BOTTLE
4         RED WOOLLY HOTTIE WHITE HEART
...

В моем наборе данных более 500000 строк, а в столбце 'Description' более 3500 уникальных значений, поэтому для обучения моей модели я использую функцию pandas.get_dummies():

dataset = pd.get_dummies(dataset, columns=["Description"])

Используя это, форма набора данных изменяется на:

(541909, 3936)

Я уверен, что этот огромный объем данных является частью проблемы, но я не уверен, как я могу этого избежать, есть ли предложения, как это исправить?

1 Ответ

0 голосов
/ 03 августа 2020

Да, выход есть. Вы должны загрузить свои данные и преобразовать их с помощью tf.data.Dataset API .

Как говорится в нескольких комментариях, вам придется сократить столбец Description, имея, так сказать, пороговое значение . Но используя конвейер Dataset, вы будете уверены, что он не будет загружать полный набор данных в память, а будет загружать только один Batch за раз.

Tensorflow также рекомендует использовать этот API для конвейера ввода. Вам придется научиться использовать его вместо pandas. Но я рекомендую это сделать для лучшей производительности. Есть много учебных пособий. Я предлагаю следовать руководству по загрузке набора данных непосредственно в tf.data.Dataset.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...