DatasetFolder¶
- 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)[原始碼]¶
一個通用的資料載入器。
可以透過重寫
find_classes()方法來定製此預設目錄結構。- 引數:
root (str 或
pathlib.Path) – 根目錄路徑。loader (callable) – 一個函式,用於根據樣本的路徑載入樣本。
extensions (tuple[string]) – 允許的副檔名列表。不應同時傳遞 extensions 和 is_valid_file。
transform (callable, optional) – 一個函式/轉換,它接受一個樣本並返回一個轉換後的版本。例如,影像的
transforms.RandomCrop。target_transform (可呼叫物件, 可選) – 一個函式/變換,接受目標並對其進行變換。
is_valid_file (callable, optional) – 一個函式,它接受一個檔案路徑並檢查該檔案是否為有效檔案(用於檢查損壞的檔案)。不應同時傳遞 extensions 和 is_valid_file。
allow_empty – 如果為 True,則空資料夾被視為有效類。如果為 False(預設值),則在空資料夾上引發錯誤。
- find_classes(directory: Union[str, Path]) tuple[list[str], dict[str, int]][原始碼]¶
查詢按以下方式組織的 dataset 中的類資料夾
directory/ ├── class_x │ ├── xxx.ext │ ├── xxy.ext │ └── ... │ └── xxz.ext └── class_y ├── 123.ext ├── nsdf3.ext └── ... └── asd932_.ext可以重寫此方法,以僅考慮類的一個子集,或適應不同的資料集目錄結構。
- 引數:
directory (str) – 根目錄路徑,對應於
self.root- 丟擲:
FileNotFoundError – 如果
dir沒有類資料夾。- 返回:
所有類和將每個類對映到索引的字典的列表。
- 返回型別:
- 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]][原始碼]¶
生成一個樣本列表,形式為 (樣本路徑, 類別)。
可以重寫此方法,例如從壓縮的 zip 檔案而不是從磁碟讀取檔案。
- 引數:
directory (str) – 根資料集目錄,對應於
self.root。extensions (optional) – 允許的副檔名列表。應傳遞 extensions 或 is_valid_file 中的一個。預設為 None。
is_valid_file (optional) – 一個函式,它接受檔案路徑並檢查檔案是否為有效檔案(用於檢查損壞的檔案),不應同時傳遞 extensions 和 is_valid_file。預設為 None。
allow_empty (bool, optional) – 如果為 True,則空資料夾被視為有效類。如果為 False(預設值),則在空資料夾上引發錯誤。
- 丟擲:
ValueError – 如果
class_to_idx為空。ValueError – 如果
extensions和is_valid_file為 None 或都非 None。FileNotFoundError – 如果任何類未找到有效檔案。
- 返回:
形式為 (樣本路徑, 類別) 的樣本
- 返回型別: