Рейтинг:1

Ubuntu зависает после выполнения кода Python в ноутбуке Jupyter

флаг de
New

Я попытался выполнить этот код в Windows, и он работал безупречно, но в Ubuntu, как только я запускаю этот код, Ubuntu зависает на 3-4 минуты, а затем приходит результат, а затем Ubuntu ведет себя с задержкой, пока я не перезапущу ее.

импортировать numpy как np
импортировать панд как pd
из sklearn.preprocessing импортировать StandardScaler
из sklearn.model_selection импорта train_test_split
предварительная обработка импорта из sklearn
из xgboost импортировать XGBClassifier
импортировать xgboost как xgb
из sklearn.metrics импорта precision_score

dataset_len = 40000000
dlen = интервал (dataset_len/2)
X_11 = pd.Series(np.random.normal(2,2,dlen))
X_12 = pd.Series(np.random.normal(9,2,dlen))
X_1 = pd.concat([X_11, X_12]).reset_index(drop=True)
X_21 = pd.Series(np.random.normal(1,3,dlen))
X_22 = pd.Series(np.random.normal(7,3,dlen))
X_2 = pd.concat([X_21, X_22]).reset_index(drop=True)
X_31 = pd.Series(np.random.normal(3,1,dlen))
X_32 = pd.Series(np.random.normal(3,4,dlen))
X_3 = pd.concat([X_31, X_32]).reset_index(drop=True)
X_41 = pd.Series(np.random.normal(1,1,dlen))
X_42 = pd.Series(np.random.normal(5,2,dlen))
X_4 = pd.concat([X_41, X_42]).reset_index(drop=True)
Y = pd.Series (np.repeat ([0,1], dlen))
df = pd.concat([X_1, X_2, X_3, X_4, Y], ось = 1)
df.columns = ['X1', 'X2', 'X3', 'X_4', 'Y']
дф.голова()


New avatar
флаг de
New
@IndranilGanguly Какой у вас размер оперативной памяти и размер подкачки?
zwets avatar
флаг us
Пожалуйста, добавьте к своему вопросу информацию о том, как вы уже пытались решить свою проблему. Простой поиск дает несколько страниц с возможными решениями. Какие из них вы уже пробовали и почему они не сработали в вашем случае?
Indranil Ganguly avatar
флаг sz
это может быть проблема с памятью, когда объем оперативной памяти, необходимый для кода, занимает слишком много места, попробуйте отладить это, я выполнил это на своей Ubuntu, и он работал довольно безупречно, так что вы можете проверить это?
vidarlo avatar
флаг om
Можете ли вы запустить `free -m` до и после выполнения кода? [Изменить] свой вопрос, чтобы добавить эту информацию.
New avatar
флаг de
New
@vidarlo да, я запустил ```free -m```, и он показывает, что у меня есть только 600 МБ свободной памяти из 7801 МБ оперативной памяти. Как я могу получить больше свободной оперативной памяти?
vidarlo avatar
флаг om
Пожалуйста, [отредактируйте] свой вопрос с выводом до и после, как и требовалось.Вы должны посмотреть доступный, а не свободный объем оперативной памяти, который фактически доступен.
vidarlo avatar
флаг om
Для близких избирателей: почему это *не* касается Ubuntu? Я могу согласиться с близкой причиной недостаточности информации, но не с тем, что это не связано с Ubuntu!
New avatar
флаг de
New
@vidarlo Я добавил изображения в качестве ссылки внизу сообщения.
vidarlo avatar
флаг om
Пожалуйста, не размещайте текст в виде изображений в будущем, а скопируйте текст и отформатируйте его как код с помощью кнопки {} :)
Рейтинг:0
флаг om

Результат бесплатно -м после запуска кода видно, что вы заполнили пространство подкачки. Это Плохо; вашей системе фактически не хватает памяти в этот момент. Он больше не может записывать данные для подкачки и должен начать убивать процессы, чтобы освободить память.

Windows имеет динамический размер подкачки, при котором файл подкачки расширяется по мере необходимости. В Linux немного более статичный подход к свопингу, где он фиксированный и предварительно выделенный. Это, вероятно, приводит к поведению, которое вы видите, потому что Ubuntu начинает убивать процессы, когда у вас заканчивается память.

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

New avatar
флаг de
New
О, черт, я только что уменьшил значение data_len, и это было очень быстро в Ubuntu, я увеличу размер подкачки, если мне понадобится в будущем, я просто проверял скорость Ubuntu с таким значением.
vidarlo avatar
флаг om
Увеличение свопа не ускорит процесс; это очень медленно по сравнению с оперативной памятью, но это может предотвратить сбой вашей системы.

Ответить или комментировать

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