为了读懂程序,有三个最重要的文件夹,如下图:
正好对应四个类,如下图:
三个类的来源如下图所示:
注意,MVTec是个大类,里面用到了这里的第四个类MVTecDataset,代码如下。
class MVTec(AnomalibDataModule):
"""MVTec Datamodule.
。。。省略
self.train_data = MVTecDataset(
task=task,
transform=transform_train,
split=Split.TRAIN,
root=root,
category=category,
)
self.test_data = MVTecDataset(
task=task,
transform=transform_eval,
split=Split.TEST,
root=root,
category=category,
)
而这个MVTecDataset的父类,就是AnomalibDataset,
AnomalibDataset可了不得,里面就有一个著名的子函数:__getitem__