快捷方式

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)

将多个 DataPipe 操作的输出缓存到本地文件,这些文件通常是性能瓶颈,例如下载、解压缩等(函数名:on_disk_cache)。

必须使用 .end_caching() 停止跟踪 DataPipe 操作序列并将结果保存到本地文件。

参数:
  • source_datapipe – IterDataPipe

  • filepath_fn – 给定来自 source_datapipe 的数据,返回本地文件系统上的文件路径。只允许单个文件路径作为函数的输出。如果结果文件名与 end_cache 的文件名函数生成的原始文件名不同,则使用该文件名存储 yield 文件列表(以及作为缓存项可用性检查)

  • hash_dict – 一个字典,将文件名映射到它们相应的哈希值。如果指定了 hash_dict,则将在保存数据到本地文件系统之前附加额外的哈希检查。如果数据不符合哈希值,管道将引发错误。

  • hash_type – 要应用的哈希函数类型

  • extra_check_fn – 可选函数,用于对来自 filepath_fn 的给定文件路径执行额外的验证。

示例

>>> 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 的全面开发者文档

查看文档

教程

获得针对初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源