Ошибка памяти при создании огромного трехмерного разреженного массива для одного горячего вектора - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь создать 3 тензора для своей сети LSTM для языкового перевода.

import numpy as np
Num_samples=50000
Time_step=100
Vocabulary=5000
shape = (Num_samples,Time_step,Vocabulary)
encoder_input_data = np.zeros(shape,dtype='float32')
decoder_input_data = np.zeros(shape,dtype='float32')
decoder_target_data = np.zeros(shape,dtype='float32')

Очевидно, на моей машине недостаточно памяти для этого.Поскольку данные представлены в виде векторов с одним горячим током, кажется, что использование функции csc_matrix() из scipy.sparse будет решением, как предлагается в этом шаге и этом шаге .

Но после попытки csc_matrix() и crc_matrix() кажется, что они поддерживают только 2D-массив.

Старые протекторы из 6 лет назад говорили об этой проблеме, ноони не ориентированы на машинное обучение.

Мой вопрос таков: есть ли какой-нибудь python lib / tool, который может помочь мне создавать разреженные трехмерные массивы, которые позволят мне позднее хранить горячие векторы для машинного обучения?

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