quadra 2.4.0__tar.gz → 2.5.0__tar.gz
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.
- {quadra-2.4.0 → quadra-2.5.0}/PKG-INFO +3 -2
- {quadra-2.4.0 → quadra-2.5.0}/pyproject.toml +1 -1
- {quadra-2.4.0 → quadra-2.5.0}/quadra/__init__.py +1 -1
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/core/default.yaml +1 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/export.py +5 -6
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/utils.py +70 -35
- {quadra-2.4.0 → quadra-2.5.0}/LICENSE +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/README.md +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/callbacks/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/callbacks/anomalib.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/callbacks/lightning.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/callbacks/mlflow.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/callbacks/scheduler.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/caformer_m36.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/caformer_s36.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/convnextv2_base.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/convnextv2_femto.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/convnextv2_tiny.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/dino_vitb8.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/dino_vits8.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/dinov2_vitb14.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/dinov2_vits14.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/efficientnet_b0.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/efficientnet_b1.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/efficientnet_b2.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/efficientnet_b3.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/efficientnetv2_s.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/levit_128s.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/mnasnet0_5.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/resnet101.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/resnet18.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/resnet18_ssl.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/resnet50.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/smp.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/tiny_vit_21m_224.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/unetr.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/vit16_base.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/vit16_small.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/vit16_tiny.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/backbone/xcit_tiny_24_p8_224.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/callbacks/all.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/callbacks/default.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/callbacks/default_anomalib.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/config.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/base/anomaly.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/base/classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/base/multilabel_classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/base/segmentation.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/base/segmentation_multiclass.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/base/sklearn_classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/base/sklearn_classification_patch.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/base/ssl.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/generic/imagenette/classification/base.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/generic/imagenette/ssl/base.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/generic/mnist/anomaly/base.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/generic/mvtec/anomaly/base.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/generic/oxford_pet/segmentation/base.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/anomaly/cfa.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/anomaly/cflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/anomaly/csflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/anomaly/draem.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/anomaly/efficient_ad.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/anomaly/fastflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/anomaly/inference.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/anomaly/padim.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/anomaly/patchcore.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/classification/classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/classification/classification_evaluation.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/classification/multilabel_classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/classification/sklearn_classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/classification/sklearn_classification_patch.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/classification/sklearn_classification_patch_test.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/classification/sklearn_classification_test.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/segmentation/smp.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/segmentation/smp_evaluation.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/segmentation/smp_multiclass.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/segmentation/smp_multiclass_evaluation.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/ssl/barlow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/ssl/byol.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/ssl/dino.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/ssl/linear_eval.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/ssl/simclr.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/ssl/simsiam.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/custom/cls.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/default.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/imagenette/classification/default.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/imagenette/ssl/barlow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/imagenette/ssl/byol.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/imagenette/ssl/dino.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/imagenette/ssl/simclr.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/imagenette/ssl/simsiam.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mnist/anomaly/cfa.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mnist/anomaly/cflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mnist/anomaly/csflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mnist/anomaly/draem.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mnist/anomaly/fastflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mnist/anomaly/inference.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mnist/anomaly/padim.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mnist/anomaly/patchcore.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/cfa.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/cflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/csflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/draem.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/efficient_ad.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/fastflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/inference.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/padim.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/patchcore.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/oxford_pet/segmentation/smp.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/export/default.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/hydra/anomaly_custom.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/hydra/default.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/inference/default.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/logger/comet.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/logger/csv.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/logger/mlflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/logger/tensorboard.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/asl.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/barlow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/bce.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/byol.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/cross_entropy.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/dino.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/simclr.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/simsiam.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/smp_ce.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/smp_dice.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/smp_dice_multiclass.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/smp_mcc.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/loss/vicreg.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/anomalib/cfa.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/anomalib/cflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/anomalib/csflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/anomalib/dfm.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/anomalib/draem.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/anomalib/efficient_ad.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/anomalib/fastflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/anomalib/padim.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/anomalib/patchcore.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/barlow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/byol.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/dino.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/logistic_regression.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/multilabel_classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/simclr.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/simsiam.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/smp.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/smp_multiclass.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/model/vicreg.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/optimizer/adam.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/optimizer/adamw.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/optimizer/default.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/optimizer/lars.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/optimizer/sgd.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/scheduler/default.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/scheduler/rop.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/scheduler/step.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/scheduler/warmrestart.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/scheduler/warmup.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/anomalib/cfa.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/anomalib/cflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/anomalib/csflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/anomalib/draem.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/anomalib/efficient_ad.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/anomalib/fastflow.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/anomalib/inference.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/anomalib/padim.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/anomalib/patchcore.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/classification_evaluation.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/default.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/segmentation.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/segmentation_evaluation.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/sklearn_classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/sklearn_classification_patch.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/sklearn_classification_patch_test.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/sklearn_classification_test.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/task/ssl.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/trainer/lightning_cpu.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/trainer/lightning_gpu.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/trainer/lightning_gpu_bf16.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/trainer/lightning_gpu_fp16.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/trainer/lightning_multigpu.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/trainer/sklearn_classification.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/transforms/byol.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/transforms/byol_no_random_resize.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/transforms/default.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/transforms/default_numpy.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/transforms/default_resize.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/transforms/dino.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/configs/transforms/linear_eval.yaml +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/anomaly.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/base.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/classification.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/generic/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/generic/imagenette.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/generic/mnist.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/generic/mvtec.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/generic/oxford_pet.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/patch.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/segmentation.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datamodules/ssl.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datasets/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datasets/anomaly.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datasets/classification.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datasets/patch.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datasets/segmentation.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/datasets/ssl.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/classification/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/classification/asl.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/classification/focal.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/classification/prototypical.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/ssl/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/ssl/barlowtwins.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/ssl/byol.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/ssl/dino.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/ssl/hyperspherical.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/ssl/idmm.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/ssl/simclr.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/ssl/simsiam.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/losses/ssl/vicreg.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/main.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/metrics/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/metrics/segmentation.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/models/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/models/base.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/models/classification/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/models/classification/backbones.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/models/classification/base.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/models/evaluation.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/backbone.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/base.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/classification/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/classification/base.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/ssl/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/ssl/barlowtwins.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/ssl/byol.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/ssl/common.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/ssl/dino.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/ssl/hyperspherical.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/ssl/idmm.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/ssl/simclr.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/ssl/simsiam.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/modules/ssl/vicreg.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/optimizers/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/optimizers/lars.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/optimizers/sam.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/schedulers/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/schedulers/base.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/schedulers/warmup.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/tasks/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/tasks/anomaly.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/tasks/base.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/tasks/classification.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/tasks/patch.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/tasks/segmentation.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/tasks/ssl.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/trainers/README.md +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/trainers/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/trainers/classification.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/anomaly.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/classification.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/deprecation.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/evaluation.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/imaging.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/logger.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/mlflow.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/model_manager.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/models.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/patch/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/patch/dataset.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/patch/metrics.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/patch/model.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/patch/visualization.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/resolver.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/segmentation.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/fixtures/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/fixtures/dataset/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/fixtures/dataset/anomaly.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/fixtures/dataset/classification.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/fixtures/dataset/imagenette.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/fixtures/dataset/segmentation.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/fixtures/models/__init__.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/fixtures/models/anomaly.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/fixtures/models/classification.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/fixtures/models/segmentation.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/helpers.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/tests/models.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/validator.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/visualization.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra/utils/vit_explainability.py +0 -0
- {quadra-2.4.0 → quadra-2.5.0}/quadra_hydra_plugin/hydra_plugins/quadra_searchpath_plugin.py +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: quadra
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.0
|
|
4
4
|
Summary: Deep Learning experiment orchestration library
|
|
5
5
|
License: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
6
7
|
Keywords: deep learning,experiment,lightning,hydra-core
|
|
7
8
|
Author: Federico Belotti
|
|
8
9
|
Author-email: federico.belotti@orobix.com
|
|
@@ -430,16 +430,15 @@ def _safe_export_half_precision_onnx(
|
|
|
430
430
|
export_output = export_onnx_model(
|
|
431
431
|
model=model,
|
|
432
432
|
output_path=os.path.dirname(export_model_path),
|
|
433
|
-
|
|
433
|
+
# Force to not simplify fp32 model
|
|
434
|
+
onnx_config=DictConfig({**onnx_config, "simplify": False}),
|
|
434
435
|
input_shapes=input_shapes,
|
|
435
436
|
half_precision=False,
|
|
436
437
|
model_name=os.path.basename(export_model_path),
|
|
437
438
|
)
|
|
438
|
-
if export_output is
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
log.warning("Failed to export model")
|
|
442
|
-
return False
|
|
439
|
+
if export_output is None:
|
|
440
|
+
# This should not happen
|
|
441
|
+
raise RuntimeError("Failed to export model")
|
|
443
442
|
|
|
444
443
|
model_fp32 = onnx.load(export_model_path)
|
|
445
444
|
test_data = {input_names[i]: inp[i].float().cpu().numpy() for i in range(len(inp))}
|
|
@@ -8,10 +8,12 @@ import glob
|
|
|
8
8
|
import json
|
|
9
9
|
import logging
|
|
10
10
|
import os
|
|
11
|
+
import shutil
|
|
11
12
|
import subprocess
|
|
12
13
|
import sys
|
|
13
14
|
import warnings
|
|
14
15
|
from collections.abc import Iterable, Iterator, Sequence
|
|
16
|
+
from tempfile import TemporaryDirectory
|
|
15
17
|
from typing import Any, cast
|
|
16
18
|
|
|
17
19
|
import cv2
|
|
@@ -299,45 +301,78 @@ def finish(
|
|
|
299
301
|
quadra_export.generate_torch_inputs(input_size, device=device, half_precision=half_precision),
|
|
300
302
|
)
|
|
301
303
|
types_to_upload = config.core.get("upload_models")
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
304
|
+
mlflow_zip_models = config.core.get("mlflow_zip_models", False)
|
|
305
|
+
model_uploaded = False
|
|
306
|
+
with mlflow.start_run(run_id=mlflow_logger.run_id) as _:
|
|
307
|
+
for model_path in deployed_models:
|
|
308
|
+
model_type = model_type_from_path(model_path)
|
|
309
|
+
model_name = os.path.basename(model_path)
|
|
310
|
+
|
|
311
|
+
if model_type is None:
|
|
312
|
+
logging.warning("%s model type not supported", model_path)
|
|
310
313
|
continue
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
314
|
+
if model_type is not None and model_type in types_to_upload:
|
|
315
|
+
if model_type == "pytorch" and not mlflow_zip_models:
|
|
316
|
+
logging.warning("Pytorch format still not supported for mlflow upload")
|
|
317
|
+
continue
|
|
318
|
+
|
|
319
|
+
if mlflow_zip_models:
|
|
320
|
+
with TemporaryDirectory() as temp_dir:
|
|
321
|
+
if model_type == "pytorch" and os.path.isfile(
|
|
322
|
+
os.path.join(export_folder, "model_config.yaml")
|
|
323
|
+
):
|
|
324
|
+
shutil.copy(model_path, temp_dir)
|
|
325
|
+
shutil.copy(os.path.join(export_folder, "model_config.yaml"), temp_dir)
|
|
326
|
+
shutil.make_archive("assets", "zip", root_dir=temp_dir)
|
|
327
|
+
else:
|
|
328
|
+
shutil.make_archive(
|
|
329
|
+
"assets",
|
|
330
|
+
"zip",
|
|
331
|
+
root_dir=os.path.dirname(model_path),
|
|
332
|
+
base_dir=model_name,
|
|
333
|
+
)
|
|
334
|
+
shutil.move("assets.zip", temp_dir)
|
|
335
|
+
mlflow.pyfunc.log_model(
|
|
336
|
+
artifact_path=model_path,
|
|
337
|
+
loader_module="not.used",
|
|
338
|
+
data_path=os.path.join(temp_dir, "assets.zip"),
|
|
339
|
+
pip_requirements=[""],
|
|
333
340
|
)
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
341
|
+
model_uploaded = True
|
|
342
|
+
else:
|
|
343
|
+
model = quadra_export.import_deployment_model(
|
|
344
|
+
model_path,
|
|
345
|
+
device=device,
|
|
346
|
+
inference_config=config.inference,
|
|
347
|
+
)
|
|
348
|
+
|
|
349
|
+
if model_type in ["torchscript", "pytorch"]:
|
|
350
|
+
signature = infer_signature_model(model.model, inputs)
|
|
351
|
+
mlflow.pytorch.log_model(
|
|
352
|
+
model.model,
|
|
338
353
|
artifact_path=model_path,
|
|
339
354
|
signature=signature,
|
|
340
355
|
)
|
|
356
|
+
model_uploaded = True
|
|
357
|
+
|
|
358
|
+
elif model_type in ["onnx", "simplified_onnx"] and ONNX_AVAILABLE:
|
|
359
|
+
if model.model_path is None:
|
|
360
|
+
logging.warning(
|
|
361
|
+
"Cannot log onnx model on mlflow, \
|
|
362
|
+
BaseEvaluationModel 'model_path' attribute is None"
|
|
363
|
+
)
|
|
364
|
+
else:
|
|
365
|
+
signature = infer_signature_model(model, inputs)
|
|
366
|
+
model_proto = onnx.load(model.model_path)
|
|
367
|
+
mlflow.onnx.log_model(
|
|
368
|
+
model_proto,
|
|
369
|
+
artifact_path=model_path,
|
|
370
|
+
signature=signature,
|
|
371
|
+
)
|
|
372
|
+
model_uploaded = True
|
|
373
|
+
|
|
374
|
+
if model_uploaded:
|
|
375
|
+
mlflow.log_artifact(os.path.join(export_folder, "model.json"), export_folder)
|
|
341
376
|
|
|
342
377
|
if tensorboard_logger is not None:
|
|
343
378
|
config_paths = []
|
|
@@ -376,7 +411,7 @@ def model_type_from_path(model_path: str) -> str | None:
|
|
|
376
411
|
- "pytorch" if the model has a '.pth' extension (PyTorch).
|
|
377
412
|
- "simplified_onnx" if the model file ends with 'simplified.onnx' (Simplified ONNX).
|
|
378
413
|
- "onnx" if the model has a '.onnx' extension (ONNX).
|
|
379
|
-
- "json"
|
|
414
|
+
- "json" if the model has a '.json' extension (JSON).
|
|
380
415
|
- None if model extension is not supported.
|
|
381
416
|
|
|
382
417
|
Example:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/base/sklearn_classification_patch.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/generic/imagenette/classification/base.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/datamodule/generic/oxford_pet/segmentation/base.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/classification/classification.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/segmentation/smp_evaluation.yaml
RENAMED
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/base/segmentation/smp_multiclass.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mnist/anomaly/inference.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mnist/anomaly/patchcore.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/efficient_ad.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/inference.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/mvtec/anomaly/patchcore.yaml
RENAMED
|
File without changes
|
{quadra-2.4.0 → quadra-2.5.0}/quadra/configs/experiment/generic/oxford_pet/segmentation/smp.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|