2021-12-14 14:02:19 +08:00
|
|
|
import requests
|
2022-01-21 21:44:12 +08:00
|
|
|
import tensorflow as tf
|
2021-12-14 14:02:19 +08:00
|
|
|
|
2022-01-21 21:44:12 +08:00
|
|
|
import gradio as gr
|
|
|
|
|
|
|
|
inception_net = tf.keras.applications.MobileNetV2() # load the model
|
2021-12-14 14:02:19 +08:00
|
|
|
|
|
|
|
# Download human-readable labels for ImageNet.
|
|
|
|
response = requests.get("https://git.io/JJkYN")
|
|
|
|
labels = response.text.split("\n")
|
|
|
|
|
2022-01-21 21:44:12 +08:00
|
|
|
|
2021-12-14 14:02:19 +08:00
|
|
|
def classify_image(inp):
|
2022-01-21 21:44:12 +08:00
|
|
|
inp = inp.reshape((-1, 224, 224, 3))
|
|
|
|
inp = tf.keras.applications.mobilenet_v2.preprocess_input(inp)
|
|
|
|
prediction = inception_net.predict(inp).flatten()
|
|
|
|
return {labels[i]: float(prediction[i]) for i in range(1000)}
|
|
|
|
|
2021-12-14 14:02:19 +08:00
|
|
|
|
|
|
|
image = gr.inputs.Image(shape=(224, 224))
|
|
|
|
label = gr.outputs.Label(num_top_classes=3)
|
|
|
|
|
2022-01-21 21:44:12 +08:00
|
|
|
gr.Interface(
|
|
|
|
fn=classify_image,
|
|
|
|
inputs=image,
|
|
|
|
outputs=label,
|
|
|
|
examples=[["images/cheetah1.jpg"], ["images/lion.jpg"]],
|
|
|
|
).launch()
|