快捷方式

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,則任何現有張量都將被複制到新位置。

關鍵字引數:
  • num_threads (int, 可選) – 用於寫入 memmap 張量的執行緒數。預設為 0

  • return_early (bool, 可選) – 如果設定為 Truenum_threads>0,則該方法將返回 tensordict 的一個 future。

  • share_non_tensor (bool, 可選) – 如果設定為 True,則非張量資料將在程序之間共享,並且在單個節點內的任何工作者上進行的寫入操作(例如就地更新或設定)將更新所有其他工作者上的值。如果非張量葉子節點數量很多(例如,共享大量非張量資料),這可能會導致 OOM 或類似錯誤。預設為 False

然後,Tensordict 被鎖定,這意味著任何非就地寫入操作(例如重新命名、設定或刪除條目)都將引發異常。一旦 tensordict 被解鎖,記憶體對映屬性將變為 False,因為不能保證跨程序身份。

返回:

返回一個新的 tensordict,其中張量儲存在磁碟上(如果 return_early=False),否則返回一個 TensorDictFuture 例項。

注意

以這種方式序列化對於深度巢狀的 tensordicts 來說可能很慢,因此不建議在訓練迴圈中呼叫此方法。

文件

訪問全面的 PyTorch 開發者文件

檢視文件

教程

為初學者和高階開發者提供深入的教程

檢視教程

資源

查詢開發資源並讓您的問題得到解答

檢視資源