Невозможно выполнить torch.load из-за ошибки травления/безопасности.Python

Программы на Python
Ответить
Anonymous
 Невозможно выполнить torch.load из-за ошибки травления/безопасности.

Сообщение Anonymous »

Я пытаюсь использовать модель pytorch, представленную по этой ссылке:
https://drive.google.com/drive/folders/ ... DcPzqlG4cG
поскольку она используется в этом проекте, который я пытаюсь запустить:
https://github.com/amaljoseph/EndToEnd_ ... d-CycleGAN
Когда я это сделаю

Код: Выделить всё

torch.load(model, "cpu")
Я понимаю

Код: Выделить всё

raise pickle.UnpicklingError(_get_wo_message(str(e))) from None
_pickle.UnpicklingError: Weights only load failed. This file can still be loaded, to do so you have two options, do those steps only if you trust the source of the checkpoint.
(1) In PyTorch 2.6, we changed the default value of the `weights_only` argument in `torch.load` from `False` to `True`. Re-running `torch.load` with `weights_only` set to `False` will likely succeed, but it can result in arbitrary code execution. Do it only if you got the file from a trusted source.
(2) Alternatively, to load with `weights_only=True` please check the recommended steps in the following error message.
WeightsUnpickler error: Unsupported global: GLOBAL numpy.core.multiarray._reconstruct was not an allowed global by default. Please use `torch.serialization.add_safe_globals([_reconstruct])` or the `torch.serialization.safe_globals([_reconstruct])` context manager to allowlist this global if you trust this class/function.

Check the documentation of torch.load to learn more about types accepted by default with weights_only https://pytorch.org/docs/stable/generated/torch.load.html.
Я не хочу следовать предложению (1), поскольку я не полностью доверяю создателю и пытаюсь использовать решение (2), я бы сделал что-то вроде:

Код: Выделить всё

from numpy.core.multiarray import _reconstruct
import torch

torch.serialization.add_safe_globals([_reconstruct])
torch.load(model, "cpu")
или

Код: Выделить всё

with torch.serialization.safe_globals([_reconstruct]):
torch.load(model, "cpu")
Но я получаю точно такую ​​же ошибку. Как безопасно загрузить модель?
Подробности:
  • Версия Python: 3.12.3
  • Версия Pytorch: 2.6.0+cu124
  • Версия Numpy: 2.1.3
  • ОС: Ubuntu 24.04.2 LTS x86_64


Подробнее здесь: https://stackoverflow.com/questions/795 ... fety-error
Ответить

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

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

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

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

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