np.eye () Ошибка памяти - PullRequest
       7

np.eye () Ошибка памяти

0 голосов
/ 30 апреля 2018

Я пытаюсь обучить модели машинного обучения группам изображений и их соответствующим ярлыкам. Этикетки должны быть закодированы горячим способом перед подачей их в сеть.

Вот как выглядит тренировочный цикл:

# epochs = 500
# iterations = 50
# nclasses = 15,000
# batch_size = 64

for e in range(epochs):
    print("EPOCH %d" % e)
    for i in range(iterations):
        # batch() produces an array of labels of size (64,)
        imgs, lbls = batch()
        # Batch-wise 1-Hot Encoding
        lbls = np.eye(nclasses)[lbls] # <-- Memory Error here!
        # More processing

Всякий раз, когда я пытаюсь запустить это, я получаю ошибку памяти в lbls = np.eye(nclasses)[lbls], не сразу, а в середине 60-й эпохи или около того. Число классов довольно большое (15 КБ), и я поиграл с разными размерами пакетов, но все, что он делает, это откладывает, когда происходит ошибка памяти.

batch() выполняет следующие действия:

def batch():
# Provides a random array of images and labels of size batch_size
# labels_train is an array of shape (1217958,)
    p = np.random.choice(np.array(range(train_total)), batch_size, replace=False)
    imgs = create_images(list(inputs_train[p]))
    return imgs, labels_train[p]

Буду очень признателен, если кто-нибудь скажет мне, почему это происходит где-то посередине, а не сразу, и если бы вы могли предложить обходной путь! Большое спасибо!

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