Upload folder using huggingface_hub
Browse files- .gitattributes +1 -9
- README.md +109 -0
- config.json +43 -0
- model.pt +3 -0
.gitattributes
CHANGED
@@ -2,34 +2,26 @@
|
|
2 |
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
-
*.
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
2 |
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
|
|
5 |
*.ftz filter=lfs diff=lfs merge=lfs -text
|
6 |
*.gz filter=lfs diff=lfs merge=lfs -text
|
7 |
*.h5 filter=lfs diff=lfs merge=lfs -text
|
8 |
*.joblib filter=lfs diff=lfs merge=lfs -text
|
9 |
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
|
|
10 |
*.model filter=lfs diff=lfs merge=lfs -text
|
11 |
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
12 |
*.onnx filter=lfs diff=lfs merge=lfs -text
|
13 |
*.ot filter=lfs diff=lfs merge=lfs -text
|
14 |
*.parquet filter=lfs diff=lfs merge=lfs -text
|
15 |
*.pb filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
16 |
*.pt filter=lfs diff=lfs merge=lfs -text
|
17 |
*.pth filter=lfs diff=lfs merge=lfs -text
|
18 |
*.rar filter=lfs diff=lfs merge=lfs -text
|
|
|
19 |
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
20 |
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
|
|
21 |
*.tflite filter=lfs diff=lfs merge=lfs -text
|
22 |
*.tgz filter=lfs diff=lfs merge=lfs -text
|
23 |
*.wasm filter=lfs diff=lfs merge=lfs -text
|
24 |
*.xz filter=lfs diff=lfs merge=lfs -text
|
25 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
26 |
+
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
27 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
---
|
3 |
+
license: apache-2.0
|
4 |
+
tags:
|
5 |
+
- vision
|
6 |
+
- image-classification
|
7 |
+
datasets:
|
8 |
+
- nih-pc-chex-mimic_ch-google-openi-rsna
|
9 |
+
---
|
10 |
+
|
11 |
+
|
12 |
+
# densenet121-res224-chex
|
13 |
+
|
14 |
+
A DenseNet is a type of convolutional neural network that utilises dense connections between layers, through Dense Blocks, where we connect all layers (with matching feature-map sizes) directly with each other. To preserve the feed-forward nature, each layer obtains additional inputs from all preceding layers and passes on its own feature-maps to all subsequent layers.
|
15 |
+
|
16 |
+
|
17 |
+
### How to use
|
18 |
+
|
19 |
+
Here is how to use this model to classify an image of xray:
|
20 |
+
|
21 |
+
Note: Each pretrained model has 18 outputs. The `all` model has every output trained. However, for the other weights some targets are not trained and will predict randomly becuase they do not exist in the training dataset. The only valid outputs are listed in the field `{dataset}.pathologies` on the dataset that corresponds to the weights.
|
22 |
+
|
23 |
+
|
24 |
+
Benchmarks of the modes are here: [BENCHMARKS.md](https://github.com/mlmed/torchxrayvision/blob/master/BENCHMARKS.md)
|
25 |
+
```python
|
26 |
+
|
27 |
+
import urllib.request
|
28 |
+
|
29 |
+
import skimage
|
30 |
+
import torch
|
31 |
+
import torch.nn.functional as F
|
32 |
+
import torchvision
|
33 |
+
import torchvision.transforms
|
34 |
+
|
35 |
+
import torchxrayvision as xrv
|
36 |
+
|
37 |
+
model_name = "densenet121-res224-chex"
|
38 |
+
|
39 |
+
img_url = "https://huggingface.co/spaces/torchxrayvision/torchxrayvision-classifier/resolve/main/16747_3_1.jpg"
|
40 |
+
img_path = "xray.jpg"
|
41 |
+
urllib.request.urlretrieve(img_url, img_path)
|
42 |
+
|
43 |
+
model = xrv.models.get_model(model_name, from_hf_hub=True)
|
44 |
+
|
45 |
+
img = skimage.io.imread(img_path)
|
46 |
+
img = xrv.datasets.normalize(img, 255)
|
47 |
+
|
48 |
+
# Check that images are 2D arrays
|
49 |
+
if len(img.shape) > 2:
|
50 |
+
img = img[:, :, 0]
|
51 |
+
if len(img.shape) < 2:
|
52 |
+
print("error, dimension lower than 2 for image")
|
53 |
+
|
54 |
+
# Add color channel
|
55 |
+
img = img[None, :, :]
|
56 |
+
|
57 |
+
transform = torchvision.transforms.Compose([xrv.datasets.XRayCenterCrop()])
|
58 |
+
|
59 |
+
img = transform(img)
|
60 |
+
|
61 |
+
with torch.no_grad():
|
62 |
+
img = torch.from_numpy(img).unsqueeze(0)
|
63 |
+
preds = model(img).cpu()
|
64 |
+
output = {
|
65 |
+
k: float(v)
|
66 |
+
for k, v in zip(xrv.datasets.default_pathologies, preds[0].detach().numpy())
|
67 |
+
}
|
68 |
+
print(output)
|
69 |
+
|
70 |
+
```
|
71 |
+
For more code examples, we refer to the [example scripts](https://github.com/kamalkraj/torchxrayvision/blob/master/scripts).
|
72 |
+
|
73 |
+
|
74 |
+
### Citation
|
75 |
+
|
76 |
+
Primary TorchXRayVision paper: [https://arxiv.org/abs/2111.00595](https://arxiv.org/abs/2111.00595)
|
77 |
+
|
78 |
+
```
|
79 |
+
Joseph Paul Cohen, Joseph D. Viviano, Paul Bertin, Paul Morrison, Parsa Torabian, Matteo Guarrera, Matthew P Lungren, Akshay Chaudhari, Rupert Brooks, Mohammad Hashir, Hadrien Bertrand
|
80 |
+
TorchXRayVision: A library of chest X-ray datasets and models.
|
81 |
+
https://github.com/mlmed/torchxrayvision, 2020
|
82 |
+
|
83 |
+
|
84 |
+
@article{Cohen2020xrv,
|
85 |
+
author = {Cohen, Joseph Paul and Viviano, Joseph D. and Bertin, Paul and Morrison, Paul and Torabian, Parsa and Guarrera, Matteo and Lungren, Matthew P and Chaudhari, Akshay and Brooks, Rupert and Hashir, Mohammad and Bertrand, Hadrien},
|
86 |
+
journal = {https://github.com/mlmed/torchxrayvision},
|
87 |
+
title = {{TorchXRayVision: A library of chest X-ray datasets and models}},
|
88 |
+
url = {https://github.com/mlmed/torchxrayvision},
|
89 |
+
year = {2020}
|
90 |
+
arxivId = {2111.00595},
|
91 |
+
}
|
92 |
+
|
93 |
+
|
94 |
+
```
|
95 |
+
and this paper which initiated development of the library: [https://arxiv.org/abs/2002.02497](https://arxiv.org/abs/2002.02497)
|
96 |
+
```
|
97 |
+
Joseph Paul Cohen and Mohammad Hashir and Rupert Brooks and Hadrien Bertrand
|
98 |
+
On the limits of cross-domain generalization in automated X-ray prediction.
|
99 |
+
Medical Imaging with Deep Learning 2020 (Online: https://arxiv.org/abs/2002.02497)
|
100 |
+
|
101 |
+
@inproceedings{cohen2020limits,
|
102 |
+
title={On the limits of cross-domain generalization in automated X-ray prediction},
|
103 |
+
author={Cohen, Joseph Paul and Hashir, Mohammad and Brooks, Rupert and Bertrand, Hadrien},
|
104 |
+
booktitle={Medical Imaging with Deep Learning},
|
105 |
+
year={2020},
|
106 |
+
url={https://arxiv.org/abs/2002.02497}
|
107 |
+
}
|
108 |
+
```
|
109 |
+
|
config.json
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"weights_url": "https://github.com/mlmed/torchxrayvision/releases/download/v1/chex-densenet121-d121-tw-lr001-rot45-tr15-sc15-seed0-best.pt",
|
3 |
+
"labels": [
|
4 |
+
"Atelectasis",
|
5 |
+
"Consolidation",
|
6 |
+
"",
|
7 |
+
"Pneumothorax",
|
8 |
+
"Edema",
|
9 |
+
"",
|
10 |
+
"",
|
11 |
+
"Effusion",
|
12 |
+
"Pneumonia",
|
13 |
+
"",
|
14 |
+
"Cardiomegaly",
|
15 |
+
"",
|
16 |
+
"",
|
17 |
+
"",
|
18 |
+
"Lung Lesion",
|
19 |
+
"Fracture",
|
20 |
+
"Lung Opacity",
|
21 |
+
"Enlarged Cardiomediastinum"
|
22 |
+
],
|
23 |
+
"op_threshs": [
|
24 |
+
0.1988969,
|
25 |
+
0.05710573,
|
26 |
+
NaN,
|
27 |
+
0.0531293,
|
28 |
+
0.1435217,
|
29 |
+
NaN,
|
30 |
+
NaN,
|
31 |
+
0.27212676,
|
32 |
+
0.07749717,
|
33 |
+
NaN,
|
34 |
+
0.19712369,
|
35 |
+
NaN,
|
36 |
+
NaN,
|
37 |
+
NaN,
|
38 |
+
0.09932402,
|
39 |
+
0.09273402,
|
40 |
+
0.3270967,
|
41 |
+
0.10888247
|
42 |
+
]
|
43 |
+
}
|
model.pt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1a914ae802170187a4852e594708206c12468eeeefd66aa4e8e26141649d61a4
|
3 |
+
size 28381998
|