當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch OnDiskCacheHolder用法及代碼示例


本文簡要介紹python語言中 torchdata.datapipes.iter.OnDiskCacheHolder 的用法。

用法:

class torchdata.datapipes.iter.OnDiskCacheHolder(source_datapipe: IterDataPipe, filepath_fn: Optional[Callable] = None, hash_dict: Optional[Dict[str, str]] = None, hash_type: str = 'sha256', extra_check_fn: Optional[Callable[[str], bool]] = None)

參數

  • source_datapipe-IterDataPipe

  • filepath_fn-給定來自 source_datapipe 的數據,返回本地文件係統上的文件路徑。單個文件路徑、元組或文件路徑列表被接受為返回類型。並且,還允許生成文件路徑的生成器函數。默認情況下,source_datapipe 中的數據直接用於判斷緩存是否存在。

  • hash_dict-將文件名映射到其相應哈希值的字典。如果指定hash_dict,則在將數據保存到本地文件係統之前,將附加額外的哈希檢查。如果數據不符合哈希,管道將引發錯誤。

  • hash_type-要應用的哈希函數的類型

  • extra_check_fn-對來自 filepath_fn 的給定文件路徑執行額外驗證的可選函數。

將多個DataPipe操作的輸出緩存到本地文件,這通常是下載、解壓縮等性能瓶頸(函數名稱:on_disk_cache)。

必須使用.end_caching()停止跟蹤DataPipe操作序列並將結果保存到本地文件。

示例

>>> from torchdata.datapipes.iter import IterableWrapper, HttpReader
>>> url = IterableWrapper(["https://path/to/filename", ])
>>> def _filepath_fn(url):
>>>     temp_dir = tempfile.gettempdir()
>>>     return os.path.join(temp_dir, os.path.basename(url))
>>> hash_dict = {"expected_filepath": expected_MD5_hash}
>>> cache_dp = url.on_disk_cache(filepath_fn=_filepath_fn, hash_dict=_hash_dict, hash_type="md5")
>>> # You must call ``.end_caching`` at a later point to stop tracing and save the results to local files.
>>> cache_dp = HttpReader(cache_dp).end_caching(mode="wb". filepath_fn=_filepath_fn)

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torchdata.datapipes.iter.OnDiskCacheHolder。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。