Spaces:
Runtime error
Runtime error
File size: 3,257 Bytes
56c2806 bc768f1 3a24180 92b9152 bc768f1 3a24180 bc768f1 56c2806 bc768f1 c2cbbaf 924ced2 c2cbbaf 751271f c2cbbaf 2b7d328 c2cbbaf c22ad84 bc768f1 c2cbbaf bc768f1 3a24180 bc768f1 0443ccc 3a24180 0443ccc 3a24180 bc768f1 6372ec1 c2cbbaf |
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 |
### -------------------------------- ###
### libraries ###
### -------------------------------- ###
import gradio as gr
import numpy as np
import os
import tensorflow as tf
### -------------------------------- ###
### model loading ###
### -------------------------------- ###
model = tf.keras.models.load_model('model.h5')
## --------------------------------- ###
### reading: categories.txt ###
### -------------------------------- ###
labels = ['please upload categories.txt' for i in range(10)] # placeholder
if os.path.isfile("categories.txt"):
# open categories.txt in read mode
categories = open("categories.txt", "r")
labels = categories.readline().split()
## --------------------------------- ###
### page description ###
### -------------------------------- ###
title = "Cast parts: Deffective or Okay?"
description = "A Hugging Space demo created by datasith!"
article = \
'''
#### Deffective or Okay?
Demo app including a binary classification model for casted parts
This is a test project to get familiar with Hugging Face!
The space includes the necessary files for everything to run smoothly on HF's Spaces:
- app.py
- categories.txt
- model.h5 (TensorFlow/Keras)
- requirements.txt
- README.md
- defective.jpg (def_front example)
- okay.jpg (ok_front example)
The data used to train the model is available as a
[Kaggle dataset](https://www.kaggle.com/datasets/ravirajsinh45/real-life-industrial-dataset-of-casting-product).
The space was inspired by @Isabel's wonderful
[cat or pug](https://huggingface.co./spaces/isabel/pug-or-cat-image-classifier) one.
If you enjoy my work feel free to follow me here on HF and/or on:
- [GitHub](https://github.com/datasith)
- [Kaggle](https://kaggle.com/datasith)
- [Twitter](https://twitter.com/datasith)
- [LinkedIn](https://linkedin.com/in/datasith)
Either way, enjoy!
'''
### -------------------------------- ###
### interface creation ###
### -------------------------------- ###
samples = ['defective.jpeg', 'okay.jpeg']
def preprocess(image):
img_grayscale = image[:,:,1]
img_array = tf.keras.utils.img_to_array(img_grayscale)
img_array = tf.expand_dims(img_array, 0)
# image = np.array(image) / 255
# image = np.expand_dims(image, axis=0)
return img_array
def predict_image(image):
# pred = model.predict(preprocess(image))
# results = {}
# for row in pred:
# for idx, item in enumerate(row):
# results[labels[idx]] = float(item)
predictions = model.predict(preprocess(image))
scores = tf.nn.softmax(predictions[0])
results = {}
for idx, res in enumerate(scores):
results[labels[idx]] = float(res)
return results
# generate img input and text label output
image = gr.inputs.Image(shape=(300, 300), label="Upload Your Image Here")
label = gr.outputs.Label(num_top_classes=len(labels))
# generate and launch interface
interface = gr.Interface(fn=predict_image, inputs=image,
outputs=label, article=article, theme='default',
title=title, allow_flagging='never', description=description,
examples=samples)
interface.launch()
|