我想将数千到数百万个不同形状的张量存储到磁盘。目标是将它们用作时间序列数据集。数据集可能不适合内存,我将不得不从磁盘加载样本或样本范围。
在保持较低的存储和访问时间的同时实现这一目标的最佳方法是什么?
将任何内容保存在磁盘中的最简单方法是使用 pickle:
import pickle
import torch
a = torch.rand(3,4,5)
# save
with open('filename.pickle', 'wb') as handle:
pickle.dump(a, handle)
# open
with open('filename.pickle', 'rb') as handle:
b = pickle.load(handle)
Run Code Online (Sandbox Code Playgroud)
你也可以直接用 pytorch 保存东西,但这只是一个围绕 pikle 的 pytorch 包装器。
import torch
x = torch.tensor([0, 1, 2, 3, 4])
torch.save(x, 'tensor.pt')
Run Code Online (Sandbox Code Playgroud)
如果你想在一个文件中保存多个张量,你可以将它们包装在一个字典中:
import torch
x = torch.tensor([0, 1, 2, 3, 4])
a = torch.rand(2,3,4,5)
b = torch.zeros(37)
torch.save({"a": a, "b":b, "x", x}, 'tensors.pt')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2306 次 |
最近记录: |