Metadata-Version: 2.4
Name: kcai-data-sampling
Version: 0.0.6
Summary: Samples generation utilities managed with uv
Author-email: Safenai <support@safenai.io>, IRT SystemX <support@irt-systemx.fr>
License-Expression: Apache-2.0
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: pyarrow>=10.0.0
Requires-Dist: numpy>=1.20.0
Requires-Dist: pillow>=8.0.0
Requires-Dist: scikit-learn>=1.0.0
Requires-Dist: torch>=1.10.0
Requires-Dist: ipykernel>=6.29.5
Requires-Dist: torchvision>=0.20.1
Requires-Dist: torch==2.5.1
Requires-Dist: torchvision==0.20.1
Requires-Dist: captum==0.7.0
Requires-Dist: torch_pruning==1.3.7
Requires-Dist: tqdm==4.66.5
Requires-Dist: click==8.1.7
Requires-Dist: pyyaml
Requires-Dist: numpy<2
Requires-Dist: neural-compressor==3.1.1
Requires-Dist: thop
Requires-Dist: tabulate
Requires-Dist: pyarrow==17.0.0
Requires-Dist: albumentations>=2.0.8
Requires-Dist: autoattack>=0.1
Requires-Dist: cleverhans>=4.0.0
Requires-Dist: boto3>=1.40.51

# KC-DATA-SAMPLING

## Installation rapide

```bash
uv venv .venv
source .venv/bin/activate
uv sync 
```

## Lancement

### 1. Génération d'images augmentées et adversariales

```bash
# Images corrompues (augmentations)
python augment_run.py --config examples/augment_all.yml

# Images adversariales (FGSM, PGD, C&W, APGD)
python adversarial_run.py --config examples/adversarial_fgsm.yml
python adversarial_run.py --config examples/adversarial_all.yml
```

**Note**: Ces scripts génèrent maintenant les images **sans inférence**. Les colonnes générées sont :
- `sample_uuid` (nouveau UUID unique)
- `parent_sample_uuid` (lien vers l'échantillon d'origine)
- `image_hash` (hash SHA256)
- `sample_id`, `sample_type`, `class_id`, `class_name`, `split`
- `transform_id`, `transform_name`, `transform_level`, `transform_params`
- `image_bytes`

### 2. Inférence sur les images

```bash
# Inférence de base (garde toutes les colonnes + ajoute prédictions)
python kc_inference.py --config examples/kc_inference.yaml

# mode in-place (onmodifie le fichier directement)
python kc_inference.py --config examples/kc_inference.yaml --in-place
```

#### Options d'inférence disponibles :

**Modes de sortie**  :
- `label_only` : Seulement le label prédit
- `label_prob` : Label + probabilité
- `top_k` : Label + prob + top-K labels et probs
- `all_probs` : Label + prob + toutes les probabilités
- `logits` : Label + prob + logits
- `extended` : Label + prob + all_probs + logits (recommandé)
- `full` : Tout (label + prob + top_k + all_probs + logits)
