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 线程数

猜你喜欢

转载自blog.csdn.net/weixin_43915090/article/details/134772381