У меня есть модели НЛП, которые я использую на GPU.Теперь я загружаю модель при первом вызове API django и сохраняю ее в памяти, так как для загрузки модели требуется время, и мне нужно запустить ее для нескольких файлов.Это прекрасно работает, установив загруженную модель в глобальную переменную.Я хочу освободить память, как только я закончу.Как бы я это сделал.
Я пытался сделать это, но это не сработало, так как я вижу ту же память, которая использовалась при выполнении TOP, хотя она не удаляет переменную
class Unload_model(views.APIView):
def post(selfself, request):
global model
del model
torch.cuda.empty_cache()
return Response([], status = status.HTTP_200_OK)
Я настраиваю глобальную переменную следующим образом:
model = None
class Predict(views.APIView):
# init random seed
random.seed(555)
def post(self, request):
for entry in request.data:
# load the model
global model
serialization_dir = entry["serialization_dir"]
params = Params.from_file(entry["config_file_path"])
if model == None:
model = loadAllenNLPModelFromDisk("vocabulary", "best.th", params)
cuda_device = 0
model = model.cuda(cuda_device)