from fcdd.runners.bases import ClassesRunner from fcdd.runners.argparse_configs import DefaultImagenetConfig class ImagenetConfig(DefaultImagenetConfig): def __call__(self, parser): parser = super().__call__(parser) parser.add_argument( '--it', type=int, default=5, help='Number of runs per class with different random seeds.') return parser if __name__ == '__main__': runner = ClassesRunner(ImagenetConfig()) runner.args.logdir += '_imagenet_' runner.run() print()
from fcdd.runners.bases import ClassesRunner from fcdd.runners.argparse_configs import DefaultMvtecConfig class MvtecConfig(DefaultMvtecConfig): def __call__(self, parser): parser = super().__call__(parser) parser.add_argument( '--it', type=int, default=5, help='Number of runs per class with different random seeds.') parser.add_argument( '--cls-restrictions', type=int, nargs='+', default=None, help= 'Run only training sessions for some of the classes being nominal.' ) return parser if __name__ == '__main__': runner = ClassesRunner(MvtecConfig()) runner.args.logdir += '_mvtec_' runner.run() print()
type=int, nargs='+', default=None, help='run only a part of the seeds found in the source experiment') parser.add_argument( '--cls-restrictions', nargs='+', default=None, type=int, help='run only a part of the classes found in the source experiment' ) return parser if __name__ == '__main__': runner = ClassesRunner(ExpConfig()) assert runner.args.srcexp is not None, 'directory of source experiment is not given!' # find all class folders, where each folder contains log data for a different class taken as nominal cls_dirs = [ pt.join(runner.args.srcexp, d) for d in os.listdir(runner.args.srcexp) if pt.isdir(pt.join(runner.args.srcexp, d)) ] cls_dirs = [ c for c in sorted(cls_dirs, key=os.path.getmtime) if c.split(os.sep)[-1].startswith('normal_') ] assert len( cls_dirs ) > 0, 'source experiment directory has no class folders, i.e. contains no log data!'
from fcdd.runners.bases import ClassesRunner from fcdd.runners.argparse_configs import DefaultCifar10Config class Cifar10Config(DefaultCifar10Config): def __call__(self, parser): parser = super().__call__(parser) parser.add_argument( '--it', type=int, default=5, help='Number of runs per class with different random seeds.') return parser if __name__ == '__main__': runner = ClassesRunner(Cifar10Config()) runner.args.logdir += '_cifar10_' runner.run() print()
from fcdd.runners.bases import ClassesRunner from fcdd.runners.argparse_configs import DefaultPascalvocConfig class PascalvocConfig(DefaultPascalvocConfig): def __call__(self, parser): parser = super().__call__(parser) parser.add_argument( '--it', type=int, default=5, help='Number of runs per class with different random seeds.') return parser if __name__ == '__main__': runner = ClassesRunner(PascalvocConfig()) runner.args.logdir += '_pascalvoc_' runner.run() print()
import torch from fcdd.runners.bases import ClassesRunner from fcdd.runners.argparse_configs import DefaultFmnistConfig class FmnistConfig(DefaultFmnistConfig): def __call__(self, parser): parser = super().__call__(parser) parser.add_argument( '--it', type=int, default=5, help='Number of runs per class with different random seeds.') return parser if __name__ == '__main__': torch.set_num_threads(4) runner = ClassesRunner(FmnistConfig()) runner.args.logdir += '_fmnist_' runner.run() print()
'per class. This also holds for the training set (in case of some known anomalies for a ' 'semi-supervised setting; set --supervise-mode to `other` to take them into account). ' 'For more details see :class:`fcdd.datasets.image_folder.ADImageFolderDataset`.' ) parser.add_argument( '--ground-truth-maps', '-gtms', action='store_true', help= 'Activates utilization of binary ground-truth maps for training and/or testing. ' 'This requires additional dataset folders `data/custom/train_maps/classX/...` ' 'and/or `data/custom/test_maps/classX/...` where the corresponding maps are placed. ' 'The ground-truth maps need to be binary; i.e., need to be in {0, 255}^{1 x h x w}, ' 'where 255 marks anomalous regions. ' 'For more details see :class:`fcdd.datasets.image_folder_gtms.ADImageFolderDatasetGTM`.' ) parser.set_defaults(one_vs_rest=False, ground_truth_maps=False) return parser if __name__ == '__main__': runner = ClassesRunner(CustomConfig()) runner.args.logdir += '_custom_' fcdd.datasets.CUSTOM_CLASSES = extract_custom_classes(runner.args.datadir) fcdd.datasets.image_folder.ADImageFolderDataset.ovr = runner.args.one_vs_rest fcdd.datasets.image_folder.ADImageFolderDataset.gtm = runner.args.ground_truth_maps del runner.args.one_vs_rest del runner.args.ground_truth_maps runner.run() print()