#python #tensorflow #out-of-memory
#python #тензорный поток #нехватка памяти
Вопрос:
Мои обучающие данные состоят из 5 миллионов строк описания продукта со средней длиной 10 слов. Я могу использовать либо CountVectorizer, либо Tf-IDF для преобразования моей функции ввода. Однако после преобразования объекта в разреженную матрицу при преобразовании его в массив или плотный массив я постоянно получаю ошибку памяти. Векторизатор count возвращает токен столбца ~ 130 тыс. Ниже приведены два метода, которые я пытаюсь реализовать. Пожалуйста, обратите внимание, что система, над которой я работаю, имеет 512 ГБ памяти. Ниже приведена ошибка:
верните np.zeros(self.shape, dtype=self.dtype, order=order) . Ошибка памяти
Способ 1
from sklearn.feature_extraction.text import CountVectorizer
vect1 = CountVectorizer(ngram_range= (1,2), min_df = 20)
#vect1.fit(train_data['description_cleaned'])
train_dtm1 = vect1.fit_transform(train_data)
dtm_data = pd.DataFrame(train_dtm1.toarray(), columns=vect1.get_feature_names())
Способ 2
tfidf = TfidfVectorizer(stop_words='english', ngram_range=(1, 2), max_df=0.5, min_df=20, use_idf=True)
corpus = tfidf.fit_transform(train_data)
dtm_data = pd.DataFrame(corpus_split.todense(), columns=tfidf.get_feature_names())
dtm_data переходит в разделение тестового поезда, которое далее переходит в Keras ANN.
Как решить эту проблему с памятью?
Комментарии:
1. сколько памяти у вашего компьютера?
Ответ №1:
Ошибка нехватки памяти возникает, когда python использует больше памяти, чем доступно. Наряду с вашей системной памятью посмотрите на память вашей видеокарты, если вы используете tensorflow-gpu. Возможно, вы захотите взглянуть на Google colab, который запускает программу python в облаке.