torch.save从pytorch1.6版本开始以zipfile的形式进行保存

自PyTorch 1.6版本起,torch.save使用了基于zipfile的新文件格式,而torch.load仍能加载旧格式。若要使用旧格式保存,需在调用torch.save时设置kwarg_use_new_zipfile_serialization=False。此变更影响模型的持久化与迁移。
部署运行你感兴趣的模型镜像

PyTorch从1.6版本开始将torch.save切换为使用新的基于zipfile的文件格式。 torch.load仍然保留以旧格式加载文件的功能(这个时候可能无法load进来zipfile格式的模型)。如果希望torch.save使用旧格式,请传递kwarg _use_new_zipfile_serialization = False。

您可能感兴趣的与本文相关的镜像

PyTorch 2.6

PyTorch 2.6

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### PyTorch `torch.save` 函数参数详解 #### 文件路径或文件对象 `torch.save` 的第一个参数是要保存的对象,可以是张量、模型状态字典或其他 Python 对象。第二个参数指定了目标位置,既可以是一个字符串形式的文件路径[^1],也能够是一个打开的文件对象。 对于文件对象的支持意味着可以在程序运行期间动态决定存储介质和位置,而不仅仅是局限于本地磁盘上的某个固定地址。当提供的是一个已打开的文件句柄而非简单的路径名时,则允许更灵活的数据流控制以及跨平台兼容性的增强[^2]。 #### 序列化协议版本 (pickle_protocol) 此选项决定了内部使用的 Pickle 协议版本,默认情况下会选择最高可用的安全级别来确保向前兼容性和安全性。较高的协议版本通常会带来更好的性能表现并支持更多特性;然而,在某些特定场景下可能需要指定较低版本以便与其他旧版软件协同工作或者满足特殊需求。 ```python import torch model_state_dict = {'key': 'value'} # 假设这是要保存的内容 torch.save(model_state_dict, 'example.pkl', pickle_protocol=4) ``` #### 是否使用压缩 (_use_new_zipfile_serialization) 启用该标志后将以 ZIP 归档的方式打包多个独立项至单个文件内,并且在读取过程中仅解压必要的部分而不是整个档案。这不仅有助于节省空间而且提高了访问效率特别是面对大型复杂结构体的时候尤为明显。 默认行为是在 PyTorch 版本较新时自动开启这一功能除非显式禁用了它。如果遇到与早先版本不一致的问题或是希望保持向后的完全一致性则可以选择关闭这项优化措施。 ```python # 启用新的序列化方式 torch.save(model_state_dict, 'compressed_model.zip', _use_new_zipfile_serialization=True) # 关闭新的序列化方式以维持向后兼容性 torch.save(model_state_dict, 'uncompressed_model.pt', _use_new_zipfile_serialization=False) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值