数据集文件夹¶
- class torchvision.datasets.DatasetFolder(root: Union[str, Path], loader: Callable[[str], Any], extensions: Optional[Tuple[str, ...]] = None, transform: Optional[Callable] = None, target_transform: Optional[Callable] = None, is_valid_file: Optional[Callable[[str], bool]] = None, allow_empty: bool = False)[source]¶
一个通用的数据加载器。
可以通过重写
find_classes()
方法来自定义此默认目录结构。- Parameters:
root (str 或
pathlib.Path
) – 根目录路径。loader (callable) – 一个用于加载给定路径样本的函数。
extensions (tuple[string]) – 允许的扩展名列表。 不应同时传递 extensions 和 is_valid_file。
transform (callable, optional) – 一个函数/变换,它接收一个样本并返回其变换后的版本。 例如,
transforms.RandomCrop
用于图像。target_transform (callable, optional) – 一个函数/转换,它接收目标并对其进行转换。
is_valid_file (callable, optional) – 一个函数,它接受文件的路径 并检查文件是否是一个有效文件(用于检查损坏的文件) 不应同时传递扩展名和is_valid_file。
allow_empty – 如果为True,空文件夹被视为有效类别。 如果为False(默认值),则在空文件夹上会引发错误。
- find_classes(directory: Union[str, Path]) Tuple[List[str], Dict[str, int]] [source]¶
在按以下结构组织的数据集中找到类文件夹:
directory/ ├── class_x │ ├── xxx.ext │ ├── xxy.ext │ └── ... │ └── xxz.ext └── class_y ├── 123.ext ├── nsdf3.ext └── ... └── asd932_.ext
此方法可以被重写,以仅考虑类的子集,或适应不同的数据集目录结构。
- Parameters:
目录 (str) – 根目录路径,对应于
self.root
- Raises:
FileNotFoundError – 如果
dir
没有类文件夹。- Returns:
所有类别的列表以及将每个类别映射到索引的字典。
- Return type:
- static make_dataset(directory: Union[str, Path], class_to_idx: Dict[str, int], extensions: Optional[Tuple[str, ...]] = None, is_valid_file: Optional[Callable[[str], bool]] = None, allow_empty: bool = False) List[Tuple[str, int]] [source]¶
生成一个表单样本列表(样本路径,类别)。
这可以被覆盖,例如从压缩的zip文件中读取文件,而不是从磁盘中读取。
- Parameters:
- Raises:
ValueError – 当
class_to_idx
为空时。ValueError – 当
extensions
和is_valid_file
都为 None 或都不为 None 时。FileNotFoundError – 如果没有为任何类找到有效的文件。
- Returns:
表单的样本 (path_to_sample, class)
- Return type: