Python3 .5-Как удалить (освободить память GPU) переменную из функции - PullRequest
0 голосов
/ 06 января 2020

Я определил функцию в Python 3.5, которая называется «оценивать», и код показан ниже («REC_Y», «REC_U», «REC_V» представляют 3 канала изображения YCbCr соответственно):

import numpy as np


def evaluate(REC_Y, REC_U, REC_V):
    height = 832
    width = 480

    bufY = np.reshape(np.asarray(REC_Y), (height, width))

    bufU = np.reshape(np.asarray(REC_U), (int(height / 2), int(width / 2)))

    bufV = np.reshape(np.asarray(REC_V), (int(height / 2), int(width / 2)))

    return (np.stack((bufY, bufU, bufV), axis=2))   

Чтобы освободить часть памяти графического процессора (поскольку у меня уже была ошибка памяти GPU), я хотел бы удалить 'REC_Y', 'REC_U', 'REC_V' из памяти после последней строки кода (после ' bufV = np.reshape (np.asarray (REC_V), (int (height / 2), int (width / 2))) '). Я пробовал 'del REC_Y', но он показал 'REC_Y', на который ссылались до назначения. Я попытался del global () ["REC_Y"], но он показал, что "REC_Y" не определен как глобальная переменная.

Не могли бы вы помочь мне с этой проблемой? Как удалить 3 параметра функции «оценить» для освобождения памяти графического процессора?

Большое спасибо!

1 Ответ

1 голос
/ 06 января 2020

Numpy не работает на GPU.

Только если у вас были операции CUPY или CUDA, вы можете попытаться освободить часть памяти на GPU -> numpy работает на CPU .

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