Как я могу освободить память GPU NVIDIA, выделенную TensorFlow (2.17.0) в моем ноутбуке Jupyter?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу освободить память GPU NVIDIA, выделенную TensorFlow (2.17.0) в моем ноутбуке Jupyter?

Сообщение Anonymous »

У меня есть ноутбук 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, как предложено в сообщении об ошибке, но Единственное, что работает, - это перезапуск ядра. Это очень раздражает, потому что загрузка данных в моей первой ячейке занимает довольно много времени, и я бы хотел сделать это только один раз. Из предыдущих выполнений ячейки или сбросить графический процессор? Мне не нужна выделенная память из старых испытаний, почему она накапливается? потом, но должен быть лучший способ.

Подробнее здесь: https://stackoverflow.com/questions/794 ... in-my-runn
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C освободить всю выделенную память одним вызовом free()
    Anonymous » » в форуме Linux
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Как я могу освободить память, выделенную внешними вызовами C в Python?
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как освободить память, выделенную opencv CV2
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Как освободить память, выделенную opencv CV2
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Должен ли я перейти на Linux, если на моем ноутбуке есть графический процессор NVIDIA? [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»