memmap¶
- class tensordict.memmap(data: TensorCollection, prefix: Optional[str] = None, copy_existing: bool = False, *, num_threads: int = 0, return_early: bool = False, share_non_tensor: bool = False)¶
将所有张量写入内存映射的 Tensor 中,并放入新的 tensordict。
- 参数:
data (TensorDictBase) – 要保存的数据结构。
prefix (str) – 内存映射张量将存储的目录前缀。目录树结构将模仿 tensordict 的结构。
copy_existing (bool) – 如果为 False(默认值),并且 tensordict 中某项已是存储在磁盘上的张量且关联了文件,但未按 prefix 保存到正确位置,则会引发异常。如果为
True
,则任何现有张量都将被复制到新位置。
- 关键字参数:
然后,Tensordict 被锁定,这意味着任何非就地写入操作(例如重命名、设置或删除条目)都将引发异常。一旦 tensordict 被解锁,内存映射属性将变为
False
,因为不能保证跨进程身份。- 返回:
返回一个新的 tensordict,其中张量存储在磁盘上(如果
return_early=False
),否则返回一个TensorDictFuture
实例。
注意
以这种方式序列化对于深度嵌套的 tensordicts 来说可能很慢,因此不建议在训练循环中调用此方法。