У меня есть ноутбук Jupyter, работающий на ядре Opt/conda/bin/python в моей машине Google Compute Engine (Debian).
Первая ячейка моего ноутбука Загружает данные изображения с диска и сохраняет их в переменных Train_images, Train_labels и т. Д. Pre Class = "Lang-Py PrettyPrint-Override">
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten, Input
from tensorflow.keras.optimizers import Adam
model.add(Input(shape=(img_size, img_size, 3)))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.4))
model.add(Dense(128, activation='relu'))
model.add(Dense(64, activation='relu'))
model.add(Dense(len(categories), activation='softmax'))
model.compile(optimizer=Adam(learning_rate=0.0001),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
history = model.fit(train_images,
train_labels,
epochs=20,
batch_size=32,
validation_data=(validate_images, validate_labels))
< /code>
Мой рабочий процесс запускает первую ячейку один раз, чтобы загрузить мои данные, а затем запустить вторую ячейку несколько раз, пробуя разные гиперпараметры. Однако, сделав это ~ 5 раз, я получаю: < /p>
2025-02-08 14:00:15.818993: W external/local_tsl/tsl/framework/bfc_allocator.cc:482] Allocator (GPU_0_bfc) ran out of memory trying to allocate 502MiB (rounded to 1207959552) requested by op StatelessRandomUniformV2
If the cause is memory fragmentation maybe the environment variable 'TF_GPU_ALLOCATOR=cuda_malloc_async' will improve the situation.
Я попробовал tf.keras.backend.clear_session () , gc.collect () и настройка Env var, как предложено в сообщении об ошибке, но Единственное, что работает, - это перезапуск ядра. Это очень раздражает, потому что загрузка данных в моей первой ячейке занимает довольно много времени, и я бы хотел сделать это только один раз. Из предыдущих выполнений ячейки или сбросить графический процессор? Мне не нужна выделенная память из старых испытаний, почему она накапливается? потом, но должен быть лучший способ.
У меня есть ноутбук Jupyter, работающий на ядре Opt/conda/bin/python в моей машине Google Compute Engine (Debian). Первая ячейка моего ноутбука Загружает данные изображения с диска и сохраняет их в переменных Train_images, Train_labels и т. Д. Pre Class = "Lang-Py PrettyPrint-Override">[code]from tensorflow.keras import Sequential from tensorflow.keras.layers import Dense, Dropout, Flatten, Input from tensorflow.keras.optimizers import Adam
history = model.fit(train_images, train_labels, epochs=20, batch_size=32, validation_data=(validate_images, validate_labels)) < /code> Мой рабочий процесс запускает первую ячейку один раз, чтобы загрузить мои данные, а затем запустить вторую ячейку несколько раз, пробуя разные гиперпараметры. Однако, сделав это ~ 5 раз, я получаю: < /p> 2025-02-08 14:00:15.818993: W external/local_tsl/tsl/framework/bfc_allocator.cc:482] Allocator (GPU_0_bfc) ran out of memory trying to allocate 502MiB (rounded to 1207959552) requested by op StatelessRandomUniformV2 If the cause is memory fragmentation maybe the environment variable 'TF_GPU_ALLOCATOR=cuda_malloc_async' will improve the situation. [/code] Я попробовал tf.keras.backend.clear_session () , gc.collect () и настройка Env var, как предложено в сообщении об ошибке, но Единственное, что работает, - это перезапуск ядра. Это очень раздражает, потому что загрузка данных в моей первой ячейке занимает довольно много времени, и я бы хотел сделать это только один раз. Из предыдущих выполнений ячейки или сбросить графический процессор? Мне не нужна выделенная память из старых испытаний, почему она накапливается? потом, но должен быть лучший способ.
TlDr: мой код Python выполняет вызовы внешней библиотеки C. Внутренне сценарии Python используют несколько сотен МБ ОЗУ, но внешние вызовы C используют много ГБ, даже когда мне больше не нужны данные, которые они вывели. Я хотел бы знать, как...
После того, как я использую эту функцию, я получаю выходные данные размером около 80 байт, но моя используемая память составляет 29 ГБ. После анализа памяти я вижу, что память heapmemoy и anon занимают много памяти. Я подозреваю, что CV2 выделяет...
После того, как я использую эту функцию, я получаю выходные данные размером около 13 ГБ, но моя используемая память составляет 29 ГБ. После анализа памяти я вижу, что память кучи и анон-память занимают много памяти. Я подозреваю, что CV2...
Недавно я думал о переходе на Linux, но слышал, что Linux не очень поддерживает nvidia. Также я играю в гта 5 и вещи из стима. Повлияет ли это на игру?
Я еще не перешел на Linux, так как пользуюсь Windows. Я буду новичком в Linux