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是 Tensor 中的元素数量。如果shared是False,那么文件必须包含至少size * sizeof(dtype)字节。如果shared是True,则会在需要时创建文件。注意
只有CPU张量可以映射到文件。
注意
目前,由内存映射文件支持的存储的张量无法在固定内存中创建。
- Parameters
filename (str) – 要映射的文件名
共享 (布尔值) – 是否共享内存(是否传递
MAP_SHARED或MAP_PRIVATE到底层的 mmap(2) 调用)大小 (int) – 张量中的元素数量
- Keyword Arguments
dtype (
torch.dtype, 可选) – 返回张量的所需数据类型。 默认值:如果None,则使用全局默认值(参见torch.set_default_dtype())。布局 (
torch.layout, 可选) – 返回张量的所需布局。 默认值:torch.strided。设备 (
torch.device, 可选) – 返回张量所需的设备。 默认值:如果None,则使用默认张量类型的当前设备 (参见torch.set_default_device())。device将是 CPU 用于 CPU 张量类型,以及当前 CUDA 设备用于 CUDA 张量类型。pin_memory (bool, 可选) – 如果设置,返回的张量将分配在固定内存中。仅适用于CPU张量。默认值:
False。
- Example::
>>> 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)