1{
2 "data_variant": "full",
3 "batch_size": 16,
4 "image_size": 224,
5 "num_classes": 14,
6 "learning_rate": 0.001,
7 "num_epochs": 50,
8 "scheduler": "plateau (factor=0.5, patience=5)",
9 "optimizer": "Adam (betas=(0.9, 0.999))",
10 "loss": "BCEWithLogitsLoss (non pond\u00e9r\u00e9e)"
11}
1import torch
2from torchvision import transforms
3from PIL import Image
4
5# Charger le modèle
6# Pour DenseNet-121
7import timm
8
9model = timm.create_model(
10 'densenet121',
11 pretrained=False,
12 num_classes=14
13)
14model.load_state_dict(torch.load('pytorch_model.bin', map_location='cpu'))
15model.eval()
16
17# Préprocessing
18transform = transforms.Compose([
19 transforms.Resize((224, 224)),
20 transforms.ToTensor(),
21 transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
22])
23
24# Pathologies
25PATHOLOGIES = [
26 "Atelectasis", "Cardiomegaly", "Effusion", "Infiltration",
27 "Mass", "Nodule", "Pneumonia", "Pneumothorax", "Consolidation",
28 "Edema", "Emphysema", "Fibrosis", "Pleural_Thickening", "Hernia"
29]
30
31# Prédiction
32image = Image.open('chest_xray.png').convert('RGB')
33input_tensor = transform(image).unsqueeze(0)
34
35with torch.no_grad():
36 logits = model(input_tensor)
37 probs = torch.sigmoid(logits)
38
39# Afficher les probabilités
40for name, prob in zip(PATHOLOGIES, probs[0]):
41 print(f"{name}: {prob:.4f}")
1@inproceedings{Wang_2017,
2 title = {ChestX-Ray8: Hospital-Scale Chest X-Ray Database and Benchmarks},
3 author = {Wang, Xiaosong and Peng, Yifan and Lu, Le and Lu, Zhiyong and Bagheri, Mohammadhadi and Summers, Ronald M},
4 booktitle = {IEEE CVPR},
5 year = {2017}
6}
7
8@article{rajpurkar2017chexnet,
9 title={CheXNet: Radiologist-Level Pneumonia Detection on Chest X-Rays with Deep Learning},
10 author={Rajpurkar, Pranav and others},
11 journal={arXiv preprint arXiv:1711.05225},
12 year={2017}
13}