torch.from_file¶
- torch.from_file(filename, shared=None, size=0, *, dtype=None, layout=None, device=None, pin_memory=False)¶
创建一个由内存映射文件支持的存储的 CPU 张量。
如果
shared
为 True,则进程间共享内存。所有更改都写入文件。如果shared
为 False,则张量中的更改不会影响文件。size
是张量中的元素数量。如果shared
等于False
,则文件必须至少包含size * sizeof(dtype)
字节。如果shared
等于True
,则如果需要将创建文件。注意
只有 CPU 张量可以映射到文件。
注意
目前,无法在固定内存中创建由内存映射文件支持的张量。
- 参数:
文件名(str)- 要映射的文件名
共享(bool)- 是否共享内存(是否将
MAP_SHARED
或MAP_PRIVATE
传递给底层的 mmap(2)调用)大小(int)- 张量中的元素数量
- 关键字参数:
dtype (
torch.dtype
,可选) – 返回张量的期望数据类型。默认:如果None
,则使用全局默认值(见torch.set_default_dtype()
)。layout (
torch.layout
,可选) – 返回 Tensor 的期望布局。默认:torch.strided
。device (
torch.device
,可选) – 返回张量的期望设备。默认:如果None
,则使用当前设备用于默认张量类型(见torch.set_default_device()
)。device
将是 CPU 张量类型的 CPU 和 CUDA 张量类型的当前 CUDA 设备。pin_memory (bool,可选) – 如果设置,返回的张量将在固定内存中分配。仅适用于 CPU 张量。默认:
False
。
- 示例::
>>> t = torch.randn(2, 5, dtype=torch.float64) >>> t.numpy().tofile('storage.pt') >>> t_mapped = torch.from_file('storage.pt', shared=False, size=10, dtype=torch.float64)