EndOnDiskCacheHolder¶
- class torchdata.datapipes.iter.EndOnDiskCacheHolder(datapipe, mode='wb', filepath_fn=None, *, same_filepath_fn=False, skip_read=False, timeout=300)¶
指示先前 DataPipe 的结果何时将保存到由
filepath_fn
指定的本地文件(功能名称:end_caching
)。此外,源 DataPipe 的结果需要是元数据和数据的元组,或元数据和文件句柄的元组。- 参数:
datapipe – 图中至少有一个
OnDiskCacheHolder
的 IterDataPipe。mode – 在磁盘上打开缓存文件以写入数据的模式。这需要与
datapipe
中的数据或文件句柄类型保持一致。"wb"
为默认值。filepath_fn – 可选函数,用于从
datapipe
的元数据中提取文件路径。默认情况下,它将直接使用 ?metadata? 作为文件路径。same_filepath_fn – 设置为
True
以使用OnDiskCacheHolder
中的相同filepath_fn
。skip_read – 布尔值,用于跳过读取
datapipe
中的文件句柄。默认情况下,读取已启用,并且读取函数是根据mode
创建的。timeout – 等待未缓存项目写入磁盘的秒数的整数。
示例
>>> 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} >>> # You must call ``.on_disk_cache`` at some point before ``.end_caching`` >>> 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)