Pytorch实现tensor序列化和并行化的示例详解
作者:怎么开心怎么玩
这篇文章主要介绍了Pytorch实现tensor序列化和并行化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,感兴趣的同学们下面随着小编来一起学习学习吧
Pytorch 实现 tensor 序列化和反序列化
序列化 Serialization
保存一个对象到一个硬盘文件上
torch.save(obj, f, pickle_mode, pickle_protocol)
参数:
- obj – 保存对象
- f - 类文件对象 (返回文件描述符)或一个保存文件名的字符串
- pickle_module – 用于 pickling 元数据和对象的模块
- pickle_protocol – 指定 pickle protocal 可以覆盖默认参数
从磁盘文件中读取一个通过 torch.save()保存的对象
torch.load(f, map_location=None, pickle_mode)
torch.load() 可通过参数 map_location 动态地进行内存重映射,使其能从不动设备中读取文件。一般调用时,需两个参数: storage 和 location tag。 返回不同地址中的 storage,或着返回 None (此时地址可以通过默认方法进行解析)。 如果这个参数是字典的话,意味着其是从文件的地址标记到当前系统的地址标记的映射。 默认情况下,location tags 中 "cpu"对应 host tensors,‘cuda:device_id’ (e.g.‘cuda:2’) 对应 cuda tensors。 用户可以通过 register_package 进行扩展,使用自己定义的标记和反序列化方法。
- f – 类文件对象 (返回文件描述符)或一个保存文件名的字符串
- map_location – 一个函数或字典规定如何 remap 存储位置
- pickle_module – 用于 unpickling 元数据和对象的模块 (必须匹配序列化文件时的 pickle_module )
并行化 Parallelism
torch.get_num_threads torch.get_num_threads() → int #获得用于并行化 CPU 操作的 OpenMP 线程数 torch.set_num_threads torch.set_num_threads(int) #设定用于并行化 CPU 操作的 OpenMP 线程数
以上就是Pytorch实现tensor序列化和并行化的示例详解的详细内容,更多关于Pytorch tensor序列化和并行化的资料请关注脚本之家其它相关文章!