Fix Gradio and dependency compatibility

#1
.gitattributes CHANGED
@@ -1,35 +1,35 @@
1
- *.7z 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
28
- examples/example_1.jpg filter=lfs diff=lfs merge=lfs -text
29
- examples/example_2.jpg filter=lfs diff=lfs merge=lfs -text
30
- examples/example_3.jpg filter=lfs diff=lfs merge=lfs -text
31
- examples/example_4.jpg filter=lfs diff=lfs merge=lfs -text
32
- examples/example_5.jpg filter=lfs diff=lfs merge=lfs -text
33
- examples/example_6.jpg filter=lfs diff=lfs merge=lfs -text
34
- examples/example_7.jpg filter=lfs diff=lfs merge=lfs -text
35
- examples/example_9.jpg filter=lfs diff=lfs merge=lfs -text
 
1
+ *.7z 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
28
+ examples/example_1.jpg filter=lfs diff=lfs merge=lfs -text
29
+ examples/example_2.jpg filter=lfs diff=lfs merge=lfs -text
30
+ examples/example_3.jpg filter=lfs diff=lfs merge=lfs -text
31
+ examples/example_4.jpg filter=lfs diff=lfs merge=lfs -text
32
+ examples/example_5.jpg filter=lfs diff=lfs merge=lfs -text
33
+ examples/example_6.jpg filter=lfs diff=lfs merge=lfs -text
34
+ examples/example_7.jpg filter=lfs diff=lfs merge=lfs -text
35
+ examples/example_9.jpg filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,13 +1,13 @@
1
- ---
2
- title: Multi Object Classification
3
- emoji: 🕵️‍♂️
4
- colorFrom: yellow
5
- colorTo: green
6
- sdk: gradio
7
- sdk_version: 3.0.24
8
- app_file: app.py
9
- pinned: false
10
- license: apache-2.0
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
+ ---
2
+ title: Multi Object Classification
3
+ emoji: 🕵️‍♂️
4
+ colorFrom: yellow
5
+ colorTo: green
6
+ sdk: gradio
7
+ sdk_version: 5.29.0
8
+ app_file: app.py
9
+ pinned: false
10
+ license: apache-2.0
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
__pycache__/app.cpython-312.pyc ADDED
Binary file (1.93 kB). View file
 
app.py CHANGED
@@ -1,43 +1,32 @@
1
- import math
2
- import numpy as np
3
- import pandas as pd
4
-
5
- import gradio as gr
6
- from huggingface_hub import from_pretrained_fastai
7
- from fastai.vision.all import *
8
-
9
-
10
- def get_x(x):
11
- return pascal_source/"train"/f'{x[0]}'
12
-
13
- def get_y(x):
14
- return x[1].split(' ')
15
-
16
- pascal_source = '.'
17
- EXAMPLES_PATH = Path('./examples')
18
- repo_id = "hugginglearners/multi-object-classification"
19
-
20
- learner = from_pretrained_fastai(repo_id)
21
- labels = learner.dls.vocab
22
-
23
- def infer(img):
24
- img = PILImage.create(img)
25
- _pred, _pred_w_idx, probs = learner.predict(img)
26
- # gradio doesn't support tensors, so converting to float
27
- labels_probs = {labels[i]: float(probs[i]) for i, _ in enumerate(labels)}
28
- return labels_probs
29
- # return f"This grapevine leave is {_pred} with {100*probs[torch.argmax(probs)].item():.2f}% probability"
30
-
31
- # get the inputs
32
- inputs = gr.inputs.Image(shape=(192, 192))
33
-
34
- # the app outputs two segmented images
35
- output = gr.outputs.Label(num_top_classes=3)
36
- # it's good practice to pass examples, description and a title to guide users
37
- title = 'Multilabel Image classification'
38
- description = 'Detect which type of object appearing in the image'
39
- article = "Author: <a href=\"https://huggingface.co/geninhu\">Nhu Hoang</a>. "
40
- examples = [f'{EXAMPLES_PATH}/{f.name}' for f in EXAMPLES_PATH.iterdir()]
41
-
42
- gr.Interface(infer, inputs, output, examples= examples, allow_flagging='never',
43
- title=title, description=description, article=article, live=False).launch(enable_queue=True, debug=False, inbrowser=False)
 
1
+ from pathlib import Path
2
+
3
+ import gradio as gr
4
+ from fastai.vision.all import *
5
+ from huggingface_hub import from_pretrained_fastai
6
+
7
+ EXAMPLES_PATH = Path("./examples")
8
+ repo_id = "hugginglearners/multi-object-classification"
9
+ learner = from_pretrained_fastai(repo_id)
10
+ labels = learner.dls.vocab
11
+
12
+
13
+ def infer(img):
14
+ img = PILImage.create(img)
15
+ _pred, _pred_w_idx, probs = learner.predict(img)
16
+ return {labels[i]: float(probs[i]) for i, _ in enumerate(labels)}
17
+
18
+
19
+ examples = [str(path) for path in EXAMPLES_PATH.iterdir()] if EXAMPLES_PATH.exists() else None
20
+
21
+ demo = gr.Interface(
22
+ infer,
23
+ gr.Image(type="pil", height=192, width=192),
24
+ gr.Label(num_top_classes=3),
25
+ examples=examples,
26
+ flagging_mode="never",
27
+ title="Multilabel Image classification",
28
+ description="Detect which type of object appears in the image.",
29
+ article='Author: <a href="https://huggingface.co/geninhu">Nhu Hoang</a>.',
30
+ live=False,
31
+ )
32
+ demo.queue().launch(debug=False, inbrowser=False)
 
 
 
 
 
 
 
 
 
 
 
examples/example_1.jpg CHANGED

Git LFS Details

  • SHA256: 2ce64fba7e31e909f598320b6f675102c8dd522afe03232a65931b9c8aaae00a
  • Pointer size: 130 Bytes
  • Size of remote file: 82.4 kB

Git LFS Details

  • SHA256: 0d17bf4d957668fa6df57f34714dc2af9693cfbb03f554af657ffed05f8edc49
  • Pointer size: 128 Bytes
  • Size of remote file: 130 Bytes
examples/example_2.jpg CHANGED

Git LFS Details

  • SHA256: 5fddfc1150b0472cf085dc31f680870db71542e387d5e255ea6343526bb9d6cf
  • Pointer size: 130 Bytes
  • Size of remote file: 75.4 kB

Git LFS Details

  • SHA256: d8cf3b2628c6a0d95f2b8560774f29fdde767070094e41487190433e37041572
  • Pointer size: 128 Bytes
  • Size of remote file: 130 Bytes
examples/example_3.jpg CHANGED

Git LFS Details

  • SHA256: b93c1343f71f3d9acabe139c6254a5bda430900e2264741cb0d15b49b79cd888
  • Pointer size: 131 Bytes
  • Size of remote file: 107 kB

Git LFS Details

  • SHA256: 7510a0854dade513789b194ce0d3256903420e6c950d1b48e6d59c1d5439900d
  • Pointer size: 128 Bytes
  • Size of remote file: 131 Bytes
examples/example_4.jpg CHANGED

Git LFS Details

  • SHA256: 8fad8066f6d7da36e84d56561ea55ce1bf7e414dc95570e1e5efef0d27934e2c
  • Pointer size: 131 Bytes
  • Size of remote file: 101 kB

Git LFS Details

  • SHA256: b2d4d5034590ccc3d5aebed4745407c87ac62053faea82c487a1e23dad719909
  • Pointer size: 128 Bytes
  • Size of remote file: 131 Bytes
examples/example_5.jpg CHANGED

Git LFS Details

  • SHA256: 74c2f7f1e291a071396059ce8a4675d0bff9cf955a614d13fb5a50b684d528b0
  • Pointer size: 131 Bytes
  • Size of remote file: 115 kB

Git LFS Details

  • SHA256: 64fa0a04bf34d213fc735e7a89ce396d9854c5c83c1b2294f4eca9bea3e4a11f
  • Pointer size: 128 Bytes
  • Size of remote file: 131 Bytes
examples/example_6.jpg CHANGED

Git LFS Details

  • SHA256: 0b6d050712b161b8ab4bd2b80cf3e4e397008bc64795ac0c698e4a908b6f4d53
  • Pointer size: 131 Bytes
  • Size of remote file: 140 kB

Git LFS Details

  • SHA256: 103f2ab8192ae5f97623cffcb60faf25ff8114c033fbd6bf3b4a8ad3bea4ddd0
  • Pointer size: 128 Bytes
  • Size of remote file: 131 Bytes
examples/example_7.jpg CHANGED

Git LFS Details

  • SHA256: d28ee4396bf33ef3c19ecdd3201586739c28a86fb7d87e1f4e5c6bc6eecc993b
  • Pointer size: 131 Bytes
  • Size of remote file: 210 kB

Git LFS Details

  • SHA256: cc4ba87ad6116c2976e234c14ad8e09fccf09dcd42ed7176a1f2abdc81c4e1ab
  • Pointer size: 128 Bytes
  • Size of remote file: 131 Bytes
examples/example_9.jpg CHANGED

Git LFS Details

  • SHA256: 46a676d06ebc2d802b62f2775789e133a9d0ebff57d178b59bec616ad398d694
  • Pointer size: 131 Bytes
  • Size of remote file: 129 kB

Git LFS Details

  • SHA256: 4520f61466cf489f198c60ce9d0a2066c33b435b6ee9312ff12f25872b4e8e19
  • Pointer size: 128 Bytes
  • Size of remote file: 131 Bytes
requirements.txt CHANGED
@@ -1,4 +1,2 @@
1
- fastai==2.7.4
2
- huggingface_hub[fastai]
3
- fastcore>=1.3.27
4
- gradio
 
1
+ fastai>=2.7.18,<3
2
+ huggingface_hub[fastai]>=0.23