quadra 0.0.1__py3-none-any.whl → 2.2.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. hydra_plugins/quadra_searchpath_plugin.py +30 -0
  2. quadra/__init__.py +6 -0
  3. quadra/callbacks/__init__.py +0 -0
  4. quadra/callbacks/anomalib.py +289 -0
  5. quadra/callbacks/lightning.py +501 -0
  6. quadra/callbacks/mlflow.py +291 -0
  7. quadra/callbacks/scheduler.py +69 -0
  8. quadra/configs/__init__.py +0 -0
  9. quadra/configs/backbone/caformer_m36.yaml +8 -0
  10. quadra/configs/backbone/caformer_s36.yaml +8 -0
  11. quadra/configs/backbone/convnextv2_base.yaml +8 -0
  12. quadra/configs/backbone/convnextv2_femto.yaml +8 -0
  13. quadra/configs/backbone/convnextv2_tiny.yaml +8 -0
  14. quadra/configs/backbone/dino_vitb8.yaml +12 -0
  15. quadra/configs/backbone/dino_vits8.yaml +12 -0
  16. quadra/configs/backbone/dinov2_vitb14.yaml +12 -0
  17. quadra/configs/backbone/dinov2_vits14.yaml +12 -0
  18. quadra/configs/backbone/efficientnet_b0.yaml +8 -0
  19. quadra/configs/backbone/efficientnet_b1.yaml +8 -0
  20. quadra/configs/backbone/efficientnet_b2.yaml +8 -0
  21. quadra/configs/backbone/efficientnet_b3.yaml +8 -0
  22. quadra/configs/backbone/efficientnetv2_s.yaml +8 -0
  23. quadra/configs/backbone/levit_128s.yaml +8 -0
  24. quadra/configs/backbone/mnasnet0_5.yaml +9 -0
  25. quadra/configs/backbone/resnet101.yaml +8 -0
  26. quadra/configs/backbone/resnet18.yaml +8 -0
  27. quadra/configs/backbone/resnet18_ssl.yaml +8 -0
  28. quadra/configs/backbone/resnet50.yaml +8 -0
  29. quadra/configs/backbone/smp.yaml +9 -0
  30. quadra/configs/backbone/tiny_vit_21m_224.yaml +9 -0
  31. quadra/configs/backbone/unetr.yaml +15 -0
  32. quadra/configs/backbone/vit16_base.yaml +9 -0
  33. quadra/configs/backbone/vit16_small.yaml +9 -0
  34. quadra/configs/backbone/vit16_tiny.yaml +9 -0
  35. quadra/configs/backbone/xcit_tiny_24_p8_224.yaml +9 -0
  36. quadra/configs/callbacks/all.yaml +45 -0
  37. quadra/configs/callbacks/default.yaml +34 -0
  38. quadra/configs/callbacks/default_anomalib.yaml +64 -0
  39. quadra/configs/config.yaml +33 -0
  40. quadra/configs/core/default.yaml +11 -0
  41. quadra/configs/datamodule/base/anomaly.yaml +16 -0
  42. quadra/configs/datamodule/base/classification.yaml +21 -0
  43. quadra/configs/datamodule/base/multilabel_classification.yaml +23 -0
  44. quadra/configs/datamodule/base/segmentation.yaml +18 -0
  45. quadra/configs/datamodule/base/segmentation_multiclass.yaml +20 -0
  46. quadra/configs/datamodule/base/sklearn_classification.yaml +23 -0
  47. quadra/configs/datamodule/base/sklearn_classification_patch.yaml +17 -0
  48. quadra/configs/datamodule/base/ssl.yaml +21 -0
  49. quadra/configs/datamodule/generic/imagenette/classification/base.yaml +9 -0
  50. quadra/configs/datamodule/generic/imagenette/ssl/base.yaml +10 -0
  51. quadra/configs/datamodule/generic/mnist/anomaly/base.yaml +14 -0
  52. quadra/configs/datamodule/generic/mvtec/anomaly/base.yaml +14 -0
  53. quadra/configs/datamodule/generic/oxford_pet/segmentation/base.yaml +9 -0
  54. quadra/configs/experiment/base/anomaly/cfa.yaml +47 -0
  55. quadra/configs/experiment/base/anomaly/cflow.yaml +47 -0
  56. quadra/configs/experiment/base/anomaly/csflow.yaml +48 -0
  57. quadra/configs/experiment/base/anomaly/draem.yaml +51 -0
  58. quadra/configs/experiment/base/anomaly/efficient_ad.yaml +43 -0
  59. quadra/configs/experiment/base/anomaly/fastflow.yaml +46 -0
  60. quadra/configs/experiment/base/anomaly/inference.yaml +21 -0
  61. quadra/configs/experiment/base/anomaly/padim.yaml +37 -0
  62. quadra/configs/experiment/base/anomaly/patchcore.yaml +37 -0
  63. quadra/configs/experiment/base/classification/classification.yaml +73 -0
  64. quadra/configs/experiment/base/classification/classification_evaluation.yaml +25 -0
  65. quadra/configs/experiment/base/classification/multilabel_classification.yaml +41 -0
  66. quadra/configs/experiment/base/classification/sklearn_classification.yaml +27 -0
  67. quadra/configs/experiment/base/classification/sklearn_classification_patch.yaml +25 -0
  68. quadra/configs/experiment/base/classification/sklearn_classification_patch_test.yaml +18 -0
  69. quadra/configs/experiment/base/classification/sklearn_classification_test.yaml +25 -0
  70. quadra/configs/experiment/base/segmentation/smp.yaml +30 -0
  71. quadra/configs/experiment/base/segmentation/smp_evaluation.yaml +17 -0
  72. quadra/configs/experiment/base/segmentation/smp_multiclass.yaml +26 -0
  73. quadra/configs/experiment/base/segmentation/smp_multiclass_evaluation.yaml +18 -0
  74. quadra/configs/experiment/base/ssl/barlow.yaml +48 -0
  75. quadra/configs/experiment/base/ssl/byol.yaml +43 -0
  76. quadra/configs/experiment/base/ssl/dino.yaml +46 -0
  77. quadra/configs/experiment/base/ssl/linear_eval.yaml +52 -0
  78. quadra/configs/experiment/base/ssl/simclr.yaml +48 -0
  79. quadra/configs/experiment/base/ssl/simsiam.yaml +53 -0
  80. quadra/configs/experiment/custom/cls.yaml +12 -0
  81. quadra/configs/experiment/default.yaml +15 -0
  82. quadra/configs/experiment/generic/imagenette/classification/default.yaml +20 -0
  83. quadra/configs/experiment/generic/imagenette/ssl/barlow.yaml +14 -0
  84. quadra/configs/experiment/generic/imagenette/ssl/byol.yaml +14 -0
  85. quadra/configs/experiment/generic/imagenette/ssl/dino.yaml +14 -0
  86. quadra/configs/experiment/generic/imagenette/ssl/simclr.yaml +14 -0
  87. quadra/configs/experiment/generic/imagenette/ssl/simsiam.yaml +14 -0
  88. quadra/configs/experiment/generic/mnist/anomaly/cfa.yaml +34 -0
  89. quadra/configs/experiment/generic/mnist/anomaly/cflow.yaml +33 -0
  90. quadra/configs/experiment/generic/mnist/anomaly/csflow.yaml +33 -0
  91. quadra/configs/experiment/generic/mnist/anomaly/draem.yaml +33 -0
  92. quadra/configs/experiment/generic/mnist/anomaly/fastflow.yaml +29 -0
  93. quadra/configs/experiment/generic/mnist/anomaly/inference.yaml +27 -0
  94. quadra/configs/experiment/generic/mnist/anomaly/padim.yaml +37 -0
  95. quadra/configs/experiment/generic/mnist/anomaly/patchcore.yaml +37 -0
  96. quadra/configs/experiment/generic/mvtec/anomaly/cfa.yaml +34 -0
  97. quadra/configs/experiment/generic/mvtec/anomaly/cflow.yaml +33 -0
  98. quadra/configs/experiment/generic/mvtec/anomaly/csflow.yaml +33 -0
  99. quadra/configs/experiment/generic/mvtec/anomaly/draem.yaml +33 -0
  100. quadra/configs/experiment/generic/mvtec/anomaly/efficient_ad.yaml +38 -0
  101. quadra/configs/experiment/generic/mvtec/anomaly/fastflow.yaml +29 -0
  102. quadra/configs/experiment/generic/mvtec/anomaly/inference.yaml +27 -0
  103. quadra/configs/experiment/generic/mvtec/anomaly/padim.yaml +37 -0
  104. quadra/configs/experiment/generic/mvtec/anomaly/patchcore.yaml +37 -0
  105. quadra/configs/experiment/generic/oxford_pet/segmentation/smp.yaml +27 -0
  106. quadra/configs/export/default.yaml +13 -0
  107. quadra/configs/hydra/anomaly_custom.yaml +15 -0
  108. quadra/configs/hydra/default.yaml +14 -0
  109. quadra/configs/inference/default.yaml +26 -0
  110. quadra/configs/logger/comet.yaml +10 -0
  111. quadra/configs/logger/csv.yaml +5 -0
  112. quadra/configs/logger/mlflow.yaml +12 -0
  113. quadra/configs/logger/tensorboard.yaml +8 -0
  114. quadra/configs/loss/asl.yaml +7 -0
  115. quadra/configs/loss/barlow.yaml +2 -0
  116. quadra/configs/loss/bce.yaml +1 -0
  117. quadra/configs/loss/byol.yaml +1 -0
  118. quadra/configs/loss/cross_entropy.yaml +1 -0
  119. quadra/configs/loss/dino.yaml +8 -0
  120. quadra/configs/loss/simclr.yaml +2 -0
  121. quadra/configs/loss/simsiam.yaml +1 -0
  122. quadra/configs/loss/smp_ce.yaml +3 -0
  123. quadra/configs/loss/smp_dice.yaml +2 -0
  124. quadra/configs/loss/smp_dice_multiclass.yaml +2 -0
  125. quadra/configs/loss/smp_mcc.yaml +2 -0
  126. quadra/configs/loss/vicreg.yaml +5 -0
  127. quadra/configs/model/anomalib/cfa.yaml +35 -0
  128. quadra/configs/model/anomalib/cflow.yaml +30 -0
  129. quadra/configs/model/anomalib/csflow.yaml +34 -0
  130. quadra/configs/model/anomalib/dfm.yaml +19 -0
  131. quadra/configs/model/anomalib/draem.yaml +29 -0
  132. quadra/configs/model/anomalib/efficient_ad.yaml +31 -0
  133. quadra/configs/model/anomalib/fastflow.yaml +32 -0
  134. quadra/configs/model/anomalib/padim.yaml +32 -0
  135. quadra/configs/model/anomalib/patchcore.yaml +36 -0
  136. quadra/configs/model/barlow.yaml +16 -0
  137. quadra/configs/model/byol.yaml +25 -0
  138. quadra/configs/model/classification.yaml +10 -0
  139. quadra/configs/model/dino.yaml +26 -0
  140. quadra/configs/model/logistic_regression.yaml +4 -0
  141. quadra/configs/model/multilabel_classification.yaml +9 -0
  142. quadra/configs/model/simclr.yaml +18 -0
  143. quadra/configs/model/simsiam.yaml +24 -0
  144. quadra/configs/model/smp.yaml +4 -0
  145. quadra/configs/model/smp_multiclass.yaml +4 -0
  146. quadra/configs/model/vicreg.yaml +16 -0
  147. quadra/configs/optimizer/adam.yaml +5 -0
  148. quadra/configs/optimizer/adamw.yaml +3 -0
  149. quadra/configs/optimizer/default.yaml +4 -0
  150. quadra/configs/optimizer/lars.yaml +8 -0
  151. quadra/configs/optimizer/sgd.yaml +4 -0
  152. quadra/configs/scheduler/default.yaml +5 -0
  153. quadra/configs/scheduler/rop.yaml +5 -0
  154. quadra/configs/scheduler/step.yaml +3 -0
  155. quadra/configs/scheduler/warmrestart.yaml +2 -0
  156. quadra/configs/scheduler/warmup.yaml +6 -0
  157. quadra/configs/task/anomalib/cfa.yaml +5 -0
  158. quadra/configs/task/anomalib/cflow.yaml +5 -0
  159. quadra/configs/task/anomalib/csflow.yaml +5 -0
  160. quadra/configs/task/anomalib/draem.yaml +5 -0
  161. quadra/configs/task/anomalib/efficient_ad.yaml +5 -0
  162. quadra/configs/task/anomalib/fastflow.yaml +5 -0
  163. quadra/configs/task/anomalib/inference.yaml +3 -0
  164. quadra/configs/task/anomalib/padim.yaml +5 -0
  165. quadra/configs/task/anomalib/patchcore.yaml +5 -0
  166. quadra/configs/task/classification.yaml +6 -0
  167. quadra/configs/task/classification_evaluation.yaml +6 -0
  168. quadra/configs/task/default.yaml +1 -0
  169. quadra/configs/task/segmentation.yaml +9 -0
  170. quadra/configs/task/segmentation_evaluation.yaml +3 -0
  171. quadra/configs/task/sklearn_classification.yaml +13 -0
  172. quadra/configs/task/sklearn_classification_patch.yaml +11 -0
  173. quadra/configs/task/sklearn_classification_patch_test.yaml +8 -0
  174. quadra/configs/task/sklearn_classification_test.yaml +8 -0
  175. quadra/configs/task/ssl.yaml +2 -0
  176. quadra/configs/trainer/lightning_cpu.yaml +36 -0
  177. quadra/configs/trainer/lightning_gpu.yaml +35 -0
  178. quadra/configs/trainer/lightning_gpu_bf16.yaml +36 -0
  179. quadra/configs/trainer/lightning_gpu_fp16.yaml +36 -0
  180. quadra/configs/trainer/lightning_multigpu.yaml +37 -0
  181. quadra/configs/trainer/sklearn_classification.yaml +7 -0
  182. quadra/configs/transforms/byol.yaml +47 -0
  183. quadra/configs/transforms/byol_no_random_resize.yaml +61 -0
  184. quadra/configs/transforms/default.yaml +37 -0
  185. quadra/configs/transforms/default_numpy.yaml +24 -0
  186. quadra/configs/transforms/default_resize.yaml +22 -0
  187. quadra/configs/transforms/dino.yaml +63 -0
  188. quadra/configs/transforms/linear_eval.yaml +18 -0
  189. quadra/datamodules/__init__.py +20 -0
  190. quadra/datamodules/anomaly.py +180 -0
  191. quadra/datamodules/base.py +375 -0
  192. quadra/datamodules/classification.py +1003 -0
  193. quadra/datamodules/generic/__init__.py +0 -0
  194. quadra/datamodules/generic/imagenette.py +144 -0
  195. quadra/datamodules/generic/mnist.py +81 -0
  196. quadra/datamodules/generic/mvtec.py +58 -0
  197. quadra/datamodules/generic/oxford_pet.py +163 -0
  198. quadra/datamodules/patch.py +190 -0
  199. quadra/datamodules/segmentation.py +742 -0
  200. quadra/datamodules/ssl.py +140 -0
  201. quadra/datasets/__init__.py +17 -0
  202. quadra/datasets/anomaly.py +287 -0
  203. quadra/datasets/classification.py +241 -0
  204. quadra/datasets/patch.py +138 -0
  205. quadra/datasets/segmentation.py +239 -0
  206. quadra/datasets/ssl.py +110 -0
  207. quadra/losses/__init__.py +0 -0
  208. quadra/losses/classification/__init__.py +6 -0
  209. quadra/losses/classification/asl.py +83 -0
  210. quadra/losses/classification/focal.py +320 -0
  211. quadra/losses/classification/prototypical.py +148 -0
  212. quadra/losses/ssl/__init__.py +17 -0
  213. quadra/losses/ssl/barlowtwins.py +47 -0
  214. quadra/losses/ssl/byol.py +37 -0
  215. quadra/losses/ssl/dino.py +129 -0
  216. quadra/losses/ssl/hyperspherical.py +45 -0
  217. quadra/losses/ssl/idmm.py +50 -0
  218. quadra/losses/ssl/simclr.py +67 -0
  219. quadra/losses/ssl/simsiam.py +30 -0
  220. quadra/losses/ssl/vicreg.py +76 -0
  221. quadra/main.py +49 -0
  222. quadra/metrics/__init__.py +3 -0
  223. quadra/metrics/segmentation.py +251 -0
  224. quadra/models/__init__.py +0 -0
  225. quadra/models/base.py +151 -0
  226. quadra/models/classification/__init__.py +8 -0
  227. quadra/models/classification/backbones.py +149 -0
  228. quadra/models/classification/base.py +92 -0
  229. quadra/models/evaluation.py +322 -0
  230. quadra/modules/__init__.py +0 -0
  231. quadra/modules/backbone.py +30 -0
  232. quadra/modules/base.py +312 -0
  233. quadra/modules/classification/__init__.py +3 -0
  234. quadra/modules/classification/base.py +327 -0
  235. quadra/modules/ssl/__init__.py +17 -0
  236. quadra/modules/ssl/barlowtwins.py +59 -0
  237. quadra/modules/ssl/byol.py +172 -0
  238. quadra/modules/ssl/common.py +285 -0
  239. quadra/modules/ssl/dino.py +186 -0
  240. quadra/modules/ssl/hyperspherical.py +206 -0
  241. quadra/modules/ssl/idmm.py +98 -0
  242. quadra/modules/ssl/simclr.py +73 -0
  243. quadra/modules/ssl/simsiam.py +68 -0
  244. quadra/modules/ssl/vicreg.py +67 -0
  245. quadra/optimizers/__init__.py +4 -0
  246. quadra/optimizers/lars.py +153 -0
  247. quadra/optimizers/sam.py +127 -0
  248. quadra/schedulers/__init__.py +3 -0
  249. quadra/schedulers/base.py +44 -0
  250. quadra/schedulers/warmup.py +127 -0
  251. quadra/tasks/__init__.py +24 -0
  252. quadra/tasks/anomaly.py +582 -0
  253. quadra/tasks/base.py +397 -0
  254. quadra/tasks/classification.py +1263 -0
  255. quadra/tasks/patch.py +492 -0
  256. quadra/tasks/segmentation.py +389 -0
  257. quadra/tasks/ssl.py +560 -0
  258. quadra/trainers/README.md +3 -0
  259. quadra/trainers/__init__.py +0 -0
  260. quadra/trainers/classification.py +179 -0
  261. quadra/utils/__init__.py +0 -0
  262. quadra/utils/anomaly.py +112 -0
  263. quadra/utils/classification.py +618 -0
  264. quadra/utils/deprecation.py +31 -0
  265. quadra/utils/evaluation.py +474 -0
  266. quadra/utils/export.py +585 -0
  267. quadra/utils/imaging.py +32 -0
  268. quadra/utils/logger.py +15 -0
  269. quadra/utils/mlflow.py +98 -0
  270. quadra/utils/model_manager.py +320 -0
  271. quadra/utils/models.py +523 -0
  272. quadra/utils/patch/__init__.py +15 -0
  273. quadra/utils/patch/dataset.py +1433 -0
  274. quadra/utils/patch/metrics.py +449 -0
  275. quadra/utils/patch/model.py +153 -0
  276. quadra/utils/patch/visualization.py +217 -0
  277. quadra/utils/resolver.py +42 -0
  278. quadra/utils/segmentation.py +31 -0
  279. quadra/utils/tests/__init__.py +0 -0
  280. quadra/utils/tests/fixtures/__init__.py +1 -0
  281. quadra/utils/tests/fixtures/dataset/__init__.py +39 -0
  282. quadra/utils/tests/fixtures/dataset/anomaly.py +124 -0
  283. quadra/utils/tests/fixtures/dataset/classification.py +406 -0
  284. quadra/utils/tests/fixtures/dataset/imagenette.py +53 -0
  285. quadra/utils/tests/fixtures/dataset/segmentation.py +161 -0
  286. quadra/utils/tests/fixtures/models/__init__.py +3 -0
  287. quadra/utils/tests/fixtures/models/anomaly.py +89 -0
  288. quadra/utils/tests/fixtures/models/classification.py +45 -0
  289. quadra/utils/tests/fixtures/models/segmentation.py +33 -0
  290. quadra/utils/tests/helpers.py +70 -0
  291. quadra/utils/tests/models.py +27 -0
  292. quadra/utils/utils.py +525 -0
  293. quadra/utils/validator.py +115 -0
  294. quadra/utils/visualization.py +422 -0
  295. quadra/utils/vit_explainability.py +349 -0
  296. quadra-2.2.7.dist-info/LICENSE +201 -0
  297. quadra-2.2.7.dist-info/METADATA +381 -0
  298. quadra-2.2.7.dist-info/RECORD +300 -0
  299. {quadra-0.0.1.dist-info → quadra-2.2.7.dist-info}/WHEEL +1 -1
  300. quadra-2.2.7.dist-info/entry_points.txt +3 -0
  301. quadra-0.0.1.dist-info/METADATA +0 -14
  302. quadra-0.0.1.dist-info/RECORD +0 -4
@@ -0,0 +1,10 @@
1
+ model: ${backbone.model}
2
+
3
+ pre_classifier: null
4
+ classifier:
5
+ _target_: torch.nn.Linear
6
+ in_features: ${backbone.metadata.output_dim}
7
+ module:
8
+ _target_: quadra.modules.classification.ClassificationModule
9
+ lr_scheduler_interval: "epoch"
10
+ criterion: ${loss}
@@ -0,0 +1,26 @@
1
+ student_projection_mlp:
2
+ _target_: quadra.modules.ssl.common.DinoProjectionHead
3
+ input_dim: ${backbone.metadata.output_dim}
4
+ output_dim: 1024
5
+ hidden_dim: 256
6
+ bottleneck_dim: 128
7
+ num_layers: 3
8
+ norm_last_layer: True
9
+
10
+ student: ${backbone.model}
11
+
12
+ teacher_projection_mlp: ${model.student_projection_mlp}
13
+
14
+ teacher: ${model.student}
15
+
16
+ module:
17
+ _target_: quadra.modules.ssl.Dino
18
+ classifier: ${model.classifier}
19
+ criterion: ${loss}
20
+ teacher_momentum: 0.996
21
+ lr_scheduler_interval: step
22
+
23
+ classifier:
24
+ _target_: sklearn.neighbors.KNeighborsClassifier
25
+ n_neighbors: 20
26
+ n_jobs: 5
@@ -0,0 +1,4 @@
1
+ _target_: sklearn.linear_model.LogisticRegression
2
+ max_iter: 10000
3
+ random_state: ${core.seed}
4
+ n_jobs: 10
@@ -0,0 +1,9 @@
1
+ model: ${backbone.model}
2
+ classifier:
3
+ _target_: torch.nn.Linear
4
+ in_features: ${backbone.metadata.output_dim}
5
+ out_features: ${datamodule.num_classes}
6
+ module:
7
+ _target_: quadra.modules.classification.MultilabelClassificationModule
8
+ lr_scheduler_interval: "epoch"
9
+ criterion: ${loss}
@@ -0,0 +1,18 @@
1
+ model: ${backbone.model}
2
+
3
+ projection_mlp:
4
+ _target_: quadra.modules.ssl.common.SimCLRProjectionHead
5
+ input_dim: ${backbone.metadata.output_dim}
6
+ output_dim: ${backbone.metadata.output_dim}
7
+ hidden_dim: ${backbone.metadata.output_dim}
8
+
9
+ module:
10
+ _target_: quadra.modules.ssl.SimCLR
11
+ classifier: ${model.classifier}
12
+ criterion: ${loss}
13
+ lr_scheduler_interval: step
14
+
15
+ classifier:
16
+ _target_: sklearn.neighbors.KNeighborsClassifier
17
+ n_neighbors: 5
18
+ n_jobs: 5
@@ -0,0 +1,24 @@
1
+ model: ${backbone.model}
2
+
3
+ projection_mlp:
4
+ _target_: quadra.modules.ssl.common.SimSiamProjectionHead
5
+ input_dim: ${backbone.metadata.output_dim}
6
+ output_dim: ${backbone.metadata.output_dim}
7
+ hidden_dim: ${backbone.metadata.output_dim}
8
+
9
+ prediction_mlp:
10
+ _target_: quadra.modules.ssl.common.SimSiamPredictionHead
11
+ input_dim: ${backbone.metadata.output_dim}
12
+ output_dim: ${backbone.metadata.output_dim}
13
+ hidden_dim: 128
14
+
15
+ module:
16
+ _target_: quadra.modules.ssl.SimSIAM
17
+ classifier: ${model.classifier}
18
+ criterion: ${loss}
19
+ lr_scheduler_interval: step
20
+
21
+ classifier:
22
+ _target_: sklearn.neighbors.KNeighborsClassifier
23
+ n_neighbors: 5
24
+ n_jobs: 5
@@ -0,0 +1,4 @@
1
+ model: ${backbone.model}
2
+ module:
3
+ _target_: quadra.modules.base.SegmentationModel
4
+ loss_fun: ${loss}
@@ -0,0 +1,4 @@
1
+ model: ${backbone.model}
2
+ module:
3
+ _target_: quadra.modules.base.SegmentationModelMulticlass
4
+ loss_fun: ${loss}
@@ -0,0 +1,16 @@
1
+ model: ${backbone.model}
2
+ projection_mlp_mult: 4
3
+ projection_mlp:
4
+ _target_: quadra.modules.ssl.common.BarlowTwinsProjectionHead
5
+ input_dim: ${backbone.metadata.output_dim}
6
+ output_dim: ${backbone.metadata.output_dim}
7
+ hidden_dim: ${backbone.metadata.output_dim}
8
+ module:
9
+ _target_: quadra.modules.ssl.BarlowTwins
10
+ classifier: ${model.classifier}
11
+ criterion: ${loss}
12
+ lr_scheduler_interval: step
13
+ classifier:
14
+ _target_: sklearn.neighbors.KNeighborsClassifier
15
+ n_neighbors: 20
16
+ n_jobs: 5
@@ -0,0 +1,5 @@
1
+ _target_: torch.optim.Adam
2
+ lr: 0.001
3
+ betas: [0.9, 0.999]
4
+ eps: 1e-08
5
+ weight_decay: 0
@@ -0,0 +1,3 @@
1
+ _target_: torch.optim.AdamW
2
+ lr: 0.01
3
+ weight_decay: 0.01
@@ -0,0 +1,4 @@
1
+ _target_: torch.optim.SGD
2
+ lr: 0.01
3
+ momentum: .9
4
+ weight_decay: 0.0001
@@ -0,0 +1,8 @@
1
+ _target_: quadra.optimizers.LARS
2
+ lr: 0.01
3
+ momentum: 0.9
4
+ dampening: 0
5
+ weight_decay: 1e-5
6
+ nesterov: true
7
+ trust_coefficient: 0.001
8
+ eps: 1e-8
@@ -0,0 +1,4 @@
1
+ _target_: torch.optim.SGD
2
+ lr: 0.01
3
+ momentum: .9
4
+ weight_decay: 0.0001
@@ -0,0 +1,5 @@
1
+ _target_: torch.optim.lr_scheduler.ReduceLROnPlateau
2
+ patience: 20
3
+ factor: 0.5
4
+ verbose: False
5
+ threshold: 0.01
@@ -0,0 +1,5 @@
1
+ _target_: torch.optim.lr_scheduler.ReduceLROnPlateau
2
+ patience: 20
3
+ factor: 0.995
4
+ verbose: False
5
+ threshold: 0.01
@@ -0,0 +1,3 @@
1
+ _target_: torch.optim.lr_scheduler.StepLR
2
+ step_size: 30
3
+ gamma: 0.5
@@ -0,0 +1,2 @@
1
+ _target_: torch.optim.lr_scheduler.CosineAnnealingWarmRestarts
2
+ T_0: ${trainer.max_epochs}
@@ -0,0 +1,6 @@
1
+ _target_: quadra.schedulers.CosineAnnealingWithLinearWarmUp
2
+ total_epochs: ${trainer.max_epochs}
3
+ linear_warmup_epochs: 10
4
+ scheduler_interval: ${model.module.lr_scheduler_interval}
5
+ init_lr:
6
+ - 0.001
@@ -0,0 +1,5 @@
1
+ _target_: quadra.tasks.anomaly.AnomalibDetection
2
+ report: true
3
+ run_test: true
4
+ module_function:
5
+ _target_: anomalib.models.cfa.lightning_model.CfaLightning
@@ -0,0 +1,5 @@
1
+ _target_: quadra.tasks.anomaly.AnomalibDetection
2
+ report: true
3
+ run_test: true
4
+ module_function:
5
+ _target_: anomalib.models.cflow.lightning_model.CflowLightning
@@ -0,0 +1,5 @@
1
+ _target_: quadra.tasks.anomaly.AnomalibDetection
2
+ report: true
3
+ run_test: true
4
+ module_function:
5
+ _target_: anomalib.models.csflow.lightning_model.CsflowLightning
@@ -0,0 +1,5 @@
1
+ _target_: quadra.tasks.anomaly.AnomalibDetection
2
+ report: true
3
+ run_test: true
4
+ module_function:
5
+ _target_: anomalib.models.draem.lightning_model.DraemLightning
@@ -0,0 +1,5 @@
1
+ _target_: quadra.tasks.anomaly.AnomalibDetection
2
+ report: true
3
+ run_test: true
4
+ module_function:
5
+ _target_: anomalib.models.efficient_ad.lightning_model.EfficientAdLightning
@@ -0,0 +1,5 @@
1
+ _target_: quadra.tasks.anomaly.AnomalibDetection
2
+ report: true
3
+ run_test: true
4
+ module_function:
5
+ _target_: anomalib.models.fastflow.lightning_model.FastflowLightning
@@ -0,0 +1,3 @@
1
+ _target_: quadra.tasks.anomaly.AnomalibEvaluation
2
+ model_path: ???
3
+ device:
@@ -0,0 +1,5 @@
1
+ _target_: quadra.tasks.anomaly.AnomalibDetection
2
+ report: true
3
+ run_test: true
4
+ module_function:
5
+ _target_: anomalib.models.padim.lightning_model.PadimLightning
@@ -0,0 +1,5 @@
1
+ _target_: quadra.tasks.anomaly.AnomalibDetection
2
+ report: true
3
+ run_test: true
4
+ module_function:
5
+ _target_: anomalib.models.patchcore.lightning_model.PatchcoreLightning
@@ -0,0 +1,6 @@
1
+ _target_: quadra.tasks.Classification
2
+ lr_multiplier: null
3
+ output:
4
+ example: false
5
+ report: false
6
+ run_test: true
@@ -0,0 +1,6 @@
1
+ _target_: quadra.tasks.ClassificationEvaluation
2
+ device: cuda:0
3
+ output:
4
+ example: true
5
+ model_path: ???
6
+ report: true
@@ -0,0 +1 @@
1
+ _target_: quadra.tasks.PlaceholderTask
@@ -0,0 +1,9 @@
1
+ _target_: quadra.tasks.Segmentation
2
+ num_viz_samples: 10
3
+ checkpoint_path: null
4
+ run_test: true
5
+ report: false
6
+ evaluate:
7
+ analysis: false
8
+ control: false
9
+ corruption: false
@@ -0,0 +1,3 @@
1
+ _target_: quadra.tasks.SegmentationAnalysisEvaluation
2
+ device: cuda:0
3
+ model_path: ???
@@ -0,0 +1,13 @@
1
+ _target_: quadra.tasks.SklearnClassification
2
+ device: cuda:0
3
+ half_precision: false
4
+ gradcam: false
5
+ automatic_batch_size:
6
+ starting_batch_size: 1024
7
+ disable: true
8
+ save_model_summary: false
9
+ output:
10
+ folder: classification_experiment
11
+ report: true
12
+ example: true
13
+ test_full_data: true
@@ -0,0 +1,11 @@
1
+ _target_: quadra.tasks.PatchSklearnClassification
2
+ device: cuda:0
3
+ half_precision: false
4
+ automatic_batch_size:
5
+ starting_batch_size: 1024
6
+ disable: true
7
+ output:
8
+ folder: classification_patch_experiment
9
+ report: true
10
+ example: true
11
+ reconstruction_method: major_voting
@@ -0,0 +1,8 @@
1
+ _target_: quadra.tasks.PatchSklearnTestClassification
2
+ device: cuda:0
3
+ output:
4
+ folder: classification_patch_test
5
+ report: true
6
+ example: true
7
+ reconstruction_method: major_voting
8
+ model_path: ???
@@ -0,0 +1,8 @@
1
+ _target_: quadra.tasks.classification.SklearnTestClassification
2
+ device: cuda:0
3
+ gradcam: false
4
+ output:
5
+ folder: classification_experiment
6
+ report: true
7
+ example: true
8
+ model_path: ???
@@ -0,0 +1,2 @@
1
+ _target_: quadra.tasks.SSL
2
+ run_test: false
@@ -0,0 +1,36 @@
1
+ _target_: pytorch_lightning.Trainer
2
+ devices: 1
3
+ accelerator: cpu
4
+ min_epochs: 1
5
+ max_epochs: 10
6
+ strategy: auto
7
+ log_every_n_steps: 10
8
+ precision: 32
9
+ num_nodes: 1
10
+ fast_dev_run: false
11
+ max_time:
12
+ limit_train_batches:
13
+ limit_val_batches:
14
+ limit_test_batches:
15
+ limit_predict_batches:
16
+ overfit_batches: 0.0
17
+ val_check_interval:
18
+ check_val_every_n_epoch: 1
19
+ num_sanity_val_steps:
20
+ enable_checkpointing:
21
+ enable_progress_bar:
22
+ enable_model_summary:
23
+ accumulate_grad_batches: 1
24
+ gradient_clip_val:
25
+ gradient_clip_algorithm:
26
+ deterministic:
27
+ benchmark:
28
+ inference_mode: True
29
+ use_distributed_sampler: True
30
+ profiler:
31
+ detect_anomaly: False
32
+ barebones: False
33
+ plugins:
34
+ sync_batchnorm: False
35
+ reload_dataloaders_every_n_epochs: 0
36
+ default_root_dir:
@@ -0,0 +1,35 @@
1
+ _target_: pytorch_lightning.Trainer
2
+ devices: [0]
3
+ accelerator: gpu
4
+ min_epochs: 1
5
+ max_epochs: 10
6
+ log_every_n_steps: 10
7
+ strategy: auto
8
+ num_nodes: 1
9
+ fast_dev_run: false
10
+ max_time:
11
+ limit_train_batches:
12
+ limit_val_batches:
13
+ limit_test_batches:
14
+ limit_predict_batches:
15
+ overfit_batches: 0.0
16
+ val_check_interval:
17
+ check_val_every_n_epoch: 1
18
+ num_sanity_val_steps:
19
+ enable_checkpointing:
20
+ enable_progress_bar:
21
+ enable_model_summary:
22
+ accumulate_grad_batches: 1
23
+ gradient_clip_val:
24
+ gradient_clip_algorithm:
25
+ deterministic:
26
+ benchmark:
27
+ inference_mode: True
28
+ use_distributed_sampler: True
29
+ profiler:
30
+ detect_anomaly: False
31
+ barebones: False
32
+ plugins:
33
+ sync_batchnorm: False
34
+ reload_dataloaders_every_n_epochs: 0
35
+ default_root_dir:
@@ -0,0 +1,36 @@
1
+ _target_: pytorch_lightning.Trainer
2
+ accelerator: gpu
3
+ devices: [0]
4
+ min_epochs: 1
5
+ max_epochs: 10
6
+ log_every_n_steps: 10
7
+ precision: bf16
8
+ strategy: auto
9
+ num_nodes: 1
10
+ fast_dev_run: false
11
+ max_time:
12
+ limit_train_batches:
13
+ limit_val_batches:
14
+ limit_test_batches:
15
+ limit_predict_batches:
16
+ overfit_batches: 0.0
17
+ val_check_interval:
18
+ check_val_every_n_epoch: 1
19
+ num_sanity_val_steps:
20
+ enable_checkpointing:
21
+ enable_progress_bar:
22
+ enable_model_summary:
23
+ accumulate_grad_batches: 1
24
+ gradient_clip_val:
25
+ gradient_clip_algorithm:
26
+ deterministic:
27
+ benchmark:
28
+ inference_mode: True
29
+ use_distributed_sampler: True
30
+ profiler:
31
+ detect_anomaly: False
32
+ barebones: False
33
+ plugins:
34
+ sync_batchnorm: False
35
+ reload_dataloaders_every_n_epochs: 0
36
+ default_root_dir:
@@ -0,0 +1,36 @@
1
+ _target_: pytorch_lightning.Trainer
2
+ devices: [0]
3
+ accelerator: gpu
4
+ min_epochs: 1
5
+ max_epochs: 10
6
+ log_every_n_steps: 10
7
+ precision: 16
8
+ strategy: auto
9
+ num_nodes: 1
10
+ fast_dev_run: false
11
+ max_time:
12
+ limit_train_batches:
13
+ limit_val_batches:
14
+ limit_test_batches:
15
+ limit_predict_batches:
16
+ overfit_batches: 0.0
17
+ val_check_interval:
18
+ check_val_every_n_epoch: 1
19
+ num_sanity_val_steps:
20
+ enable_checkpointing:
21
+ enable_progress_bar:
22
+ enable_model_summary:
23
+ accumulate_grad_batches: 1
24
+ gradient_clip_val:
25
+ gradient_clip_algorithm:
26
+ deterministic:
27
+ benchmark:
28
+ inference_mode: True
29
+ use_distributed_sampler: True
30
+ profiler:
31
+ detect_anomaly: False
32
+ barebones: False
33
+ plugins:
34
+ sync_batchnorm: False
35
+ reload_dataloaders_every_n_epochs: 0
36
+ default_root_dir:
@@ -0,0 +1,37 @@
1
+ _target_: pytorch_lightning.Trainer
2
+ devices: [0, 1]
3
+ accelerator: gpu
4
+ min_epochs: 1
5
+ max_epochs: 10
6
+ strategy:
7
+ _target_: pytorch_lightning.strategies.DDPStrategy
8
+ find_unused_parameters: false
9
+ log_every_n_steps: 10
10
+ num_nodes: 1
11
+ fast_dev_run: false
12
+ max_time:
13
+ limit_train_batches:
14
+ limit_val_batches:
15
+ limit_test_batches:
16
+ limit_predict_batches:
17
+ overfit_batches: 0.0
18
+ val_check_interval:
19
+ check_val_every_n_epoch: 1
20
+ num_sanity_val_steps:
21
+ enable_checkpointing:
22
+ enable_progress_bar:
23
+ enable_model_summary:
24
+ accumulate_grad_batches: 1
25
+ gradient_clip_val:
26
+ gradient_clip_algorithm:
27
+ deterministic:
28
+ benchmark:
29
+ inference_mode: True
30
+ use_distributed_sampler: True
31
+ profiler:
32
+ detect_anomaly: False
33
+ barebones: False
34
+ plugins:
35
+ sync_batchnorm: False
36
+ reload_dataloaders_every_n_epochs: 0
37
+ default_root_dir:
@@ -0,0 +1,7 @@
1
+ _target_: quadra.trainers.classification.SklearnClassificationTrainer
2
+ random_state: 42
3
+ input_shape:
4
+ - ${transforms.input_height}
5
+ - ${transforms.input_width}
6
+ - 3
7
+ iteration_over_training: 1
@@ -0,0 +1,47 @@
1
+ defaults:
2
+ - default_resize
3
+ - _self_
4
+
5
+ flip_and_jitter:
6
+ _target_: albumentations.Compose
7
+ transforms:
8
+ - _target_: albumentations.HorizontalFlip
9
+ p: 0.5
10
+ - _target_: albumentations.ColorJitter
11
+ brightness: 0.4
12
+ contrast: 0.4
13
+ saturation: 0.2
14
+ hue: 0.1
15
+ p: 0.8
16
+ - _target_: albumentations.ToGray
17
+ p: 0.2
18
+
19
+ augmentation1:
20
+ _target_: albumentations.Compose
21
+ transforms:
22
+ - _target_: albumentations.RandomResizedCrop
23
+ height: ${transforms.input_height}
24
+ width: ${transforms.input_width}
25
+ scale: [0.08, 1.0]
26
+ - ${transforms.flip_and_jitter}
27
+ - _target_: albumentations.GaussianBlur
28
+ blur_limit: 23
29
+ sigma_limit: [0.1, 2]
30
+ p: 1.0
31
+ - ${transforms.normalize}
32
+
33
+ augmentation2:
34
+ _target_: albumentations.Compose
35
+ transforms:
36
+ - _target_: albumentations.RandomResizedCrop
37
+ height: ${transforms.input_height}
38
+ width: ${transforms.input_width}
39
+ scale: [0.08, 1.0]
40
+ - ${transforms.flip_and_jitter}
41
+ - _target_: albumentations.GaussianBlur
42
+ blur_limit: 23
43
+ sigma_limit: [0.1, 2]
44
+ p: 0.1
45
+ - _target_: albumentations.Solarize
46
+ p: 0.2
47
+ - ${transforms.normalize}
@@ -0,0 +1,61 @@
1
+ defaults:
2
+ - default_resize
3
+ - _self_
4
+
5
+ flip_and_jitter:
6
+ _target_: albumentations.Compose
7
+ transforms:
8
+ - _target_: albumentations.HorizontalFlip
9
+ p: 0.5
10
+ - _target_: albumentations.ColorJitter
11
+ brightness: 0.4
12
+ contrast: 0.4
13
+ saturation: 0.2
14
+ hue: 0.1
15
+ p: 0.8
16
+ - _target_: albumentations.ToGray
17
+ p: 0.2
18
+
19
+ augmentation1:
20
+ _target_: albumentations.Compose
21
+ transforms:
22
+ - _target_: albumentations.Resize
23
+ height: ${transforms.input_height}
24
+ width: ${transforms.input_width}
25
+ interpolation: 2
26
+ - _target_: albumentations.ShiftScaleRotate
27
+ shift_limit_x: 0.7
28
+ shift_limit_y: 0.1
29
+ rotate_limit: 0
30
+ scale_limit: 0
31
+ border_mode: 3 # cv2.BORDER_WRAP
32
+ p: 0.3
33
+ - ${transforms.flip_and_jitter}
34
+ - _target_: albumentations.GaussianBlur
35
+ blur_limit: 23
36
+ sigma_limit: [0.1, 2]
37
+ p: 1.0
38
+ - ${transforms.normalize}
39
+
40
+ augmentation2:
41
+ _target_: albumentations.Compose
42
+ transforms:
43
+ - _target_: albumentations.Resize
44
+ height: ${transforms.input_height}
45
+ width: ${transforms.input_width}
46
+ interpolation: 2
47
+ - _target_: albumentations.ShiftScaleRotate
48
+ shift_limit_x: 0.7
49
+ shift_limit_y: 0
50
+ rotate_limit: 0
51
+ scale_limit: 0
52
+ border_mode: 3 # cv2.BORDER_WRAP
53
+ p: 0.3
54
+ - ${transforms.flip_and_jitter}
55
+ - _target_: albumentations.GaussianBlur
56
+ blur_limit: 23
57
+ sigma_limit: [0.1, 2]
58
+ p: 0.1
59
+ - _target_: albumentations.Solarize
60
+ p: 0.2
61
+ - ${transforms.normalize}