Керас с тензорным бэкэндом --- MemoryError - PullRequest
0 голосов
/ 07 ноября 2018

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

Вот код:

import numpy as np
from keras import models, regularizers, layers
from keras.datasets import imdb

(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)

def vectorize_sequences(sequences, dimension=10000):
    results = np.zeros((len(sequences), dimension))
    for i, sequence in enumerate(sequences):
        results[i, sequence] = 1.
    return results


x_train = vectorize_sequences(train_data)

Вот трассировка (номер строки не совпадает с номером строки из кода, указанного выше)

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/home/uttam/pycharm-2018.2.4/helpers/pydev/_pydev_bundle/pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "/home/uttam/pycharm-2018.2.4/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "/home/uttam/PycharmProjects/IMDB/imdb.py", line 33, in <module>
    x_train = vectorize_sequences(train_data)
  File "/home/uttam/PycharmProjects/IMDB/imdb.py", line 27, in vectorize_sequences
    results = np.zeros((len(sequences), dimension))
MemoryError

1 Ответ

0 голосов
/ 07 ноября 2018

Да, вы правы. Проблема действительно возникает из vectorize_sequences.

Вы должны выполнять эту логику в пакетном режиме (с нарезкой данных, как для partial_x_train) или использовать генераторы ( здесь - хорошее объяснение и пример).

Надеюсь, это поможет:)

...