Набор данных не помещается в памяти

У меня есть MNIST как набор данных, который не помещается в памяти (память процесса, а не память GPU). Мой набор данных 4 ГБ.

Это не TFLearn вопрос.

Насколько я знаю model.fit требуется массив для x а также y,

Пример TFLearn:

model.fit(x, y, n_epoch=10, validation_set=(val_x, val_y))

Мне было интересно, есть ли способ, где мы можем передать "пакетный итератор" вместо массива. В основном для каждой партии я бы загружал необходимые данные с диска.

Таким образом, я не столкнулся бы с ошибками переполнения памяти процесса.

РЕДАКТИРОВАТЬ np.memmap может быть вариантом. Но я не вижу, как пропустить первые несколько байтов, которые составляют заголовок.

1 ответ

Вы можете использовать API набора данных.

"API набора данных поддерживает различные форматы файлов, так что вы можете обрабатывать большие наборы данных, которые не помещаются в памяти"

В основном входной конвейер станет частью вашего графика.

Если память все еще является проблемой, вы можете использовать генератор для создания tf.data.Dataset, Кроме того, вы можете ускорить процесс, подготовив tfrecords для создания своего набора данных.

Другие вопросы по тегам