File size: 3,489 Bytes
f3c2101
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b4be829
 
 
 
 
 
 
f3c2101
 
 
 
 
 
8bf278d
 
 
f3c2101
 
 
8bf278d
 
 
f3c2101
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---

license: mit
language:
- en
library_name: pytorch
pipeline_tag: image-classification
tags:
- chexvision
- medical-imaging
- chest-xray
- radiology
- pytorch
- multi-label-classification
datasets:
- HlexNC/chest-xray-14-320
---


# CheXVision-ResNet

## Project Resources

- [GitHub repository](https://github.com/arudaev/chexvision)
- [Presentation deck](https://arudaev.github.io/chexvision/)
- [Live demo](https://huggingface.co/spaces/arudaev/chexvision-demo)
- [Dataset](https://huggingface.co/datasets/arudaev/chest-xray-14-320)

> **CheXVision** — Deep Learning & Big Data university project.
> 14-class chest X-ray pathology detection + binary normal/abnormal classification
> on the NIH Chest X-ray14 dataset (112,120 images).

## Architecture

<p align="center">
  <img src="https://huggingface.co/HlexNC/chexvision-scratch/resolve/main/arch_scratch.png" width="88%" alt="SE-ResNet Architecture"/>
</p>

## Training Pipeline

<p align="center">
  <img src="https://huggingface.co/HlexNC/chexvision-scratch/resolve/main/pipeline_training.png" width="42%" alt="Training Pipeline"/>
</p>

## Training Metrics

- Best validation macro AUC-ROC: `0.8008`
- Best validation binary AUC-ROC: `0.7571`
- Best validation binary F1: `0.6474`
- Best checkpoint epoch: `60`


## Training Configuration

- Repository: `HlexNC/chexvision-scratch`
- Dataset: [HlexNC/chest-xray-14-320](https://huggingface.co/datasets/HlexNC/chest-xray-14-320) · revision `44443e6ee968b3c6094b63f14a27698c40b50680`
- Architecture: Custom residual CNN with Squeeze-Excitation channel attention (depth [3, 4, 6, 3]) trained from scratch with shared features and dual classification heads.
- Platform: Kaggle GPU kernel (NVIDIA T4 / P100)
- Batch size: `24` × grad_accum `4` = **effective batch `96`**

- AMP (fp16): `enabled`

- CLAHE preprocessing: `disabled`

- Label smoothing: `0.0`

- Optimizer: AdamW  ·  Scheduler: CosineAnnealingLR

- Epochs configured: `100`  ·  Early stop patience: `15`



## Intended Use



This model is intended for research and educational work on automated chest X-ray pathology detection.

It outputs two predictions per image:

1. **Multi-label scores** — independent sigmoid probability for each of 14 NIH pathologies

2. **Binary score** — sigmoid probability of any abnormality (Normal vs. Abnormal)



## Limitations



- Not validated for clinical use. Predictions must not substitute professional medical judgment.

- Trained on NIH Chest X-ray14, which contains noisy radiologist annotations (patient-level labels, not lesion-level).

- Performance degrades on images from equipment, patient populations, or preprocessing pipelines

  that differ from the NIH training distribution.

- Reported AUC metrics are on the validation split, not the held-out test set.



## CheXNet Benchmark Context



CheXNet (Rajpurkar et al., 2017) — the seminal paper establishing DenseNet-121 for chest X-ray

classification — reported **0.841 macro AUC-ROC** on a comparable split of this dataset.

CheXVision-DenseNet matches this benchmark. See the

[CheXVision demo](https://huggingface.co/spaces/HlexNC/chexvision-demo) for live inference.



## Citation



```bibtex

@misc{chexvision2026,

  title={CheXVision: Dual-Task Chest X-ray Classification with Custom CNN and DenseNet-121},

  author={BIG D(ATA) Team},

  year={2026},

  howpublished={\url{https://huggingface.co/HlexNC/chexvision-scratch}}

}

```