这个警告信息与PyTorch中的torch.load函数使用有关,特别是关于加载模型权重时未来行为的变化。
以下是这个信息的详细说明:
问题:当前,当使用torch.load时,参数weights_only=False的默认行为是允许解包任意对象(pickle数据)。这存在潜在的安全风险,因为恶意的pickle数据可能在解包过程中执行任意代码。
安全隐患:如果加载的模型(或文件)不受信任或来自不安全的来源,pickle模块的行为可能会被利用,导致恶意代码运行。为此,建议避免从不受信任的来源加载模型或文件,并使用更安全的方式来仅加载模型权重。
未来的变化:在未来的PyTorch版本中,weights_only的默认值将改为True。这意味着只会加载模型权重,而不会解包任意对象,除非用户通过torch.serialization.add_safe_globals明确允许加载特定的对象。
建议:建议您在不完全控制加载的文件时,开始使用weights_only=True,以确保只加载模型权重,并防止任意对象的解包。
解决方法:
为了避免当前问题并预防未来可能出现的错误,您可以修改代码中的torch.load函数,显式设置weights_only=True,除非您确实需要加载除模型权重之外的内容。
示例修改代码:
x = torch.load(f, map_location=torch.device(“cpu”), weights_only=True)
这样可以确保只加载模型的权重,避免由于加载任意对象导致的安全风险。
如果在使用此参数时遇到问题,或者加载的文件需要的不仅仅是权重,您可以根据具体情况进行调整,但需谨慎操作。
声明:本站所有项目资源都可以正常运行,亲测无错!而且我们录制了演示视频,在我们注明的环境版本下,项目运行效果完全和演示视频一致。客服QQ:下载须知
评论(0)