-
First Check
Commit to Help
Example Codefrom fastapi import FastAPI
import tensorflow as tf
import numpy as np
app = FastAPI()
model_dir = "food-vision-model.h5"
model = tf.keras.models.load_model(model_dir)
class_predictions = [
'apple_pie',
'baby_back_ribs',
'baklava',
'beef_carpaccio',
'beef_tartare',
'beet_salad',
'beignets',
'bibimbap',
'bread_pudding',
'breakfast_burrito',
'bruschetta',
'caesar_salad',
'cannoli',
'caprese_salad',
'carrot_cake',
'ceviche',
'cheesecake',
'cheese_plate',
'chicken_curry',
'chicken_quesadilla',
'chicken_wings',
'chocolate_cake',
'chocolate_mousse',
'churros',
'clam_chowder',
'club_sandwich',
'crab_cakes',
'creme_brulee',
'croque_madame',
'cup_cakes',
'deviled_eggs',
'donuts',
'dumplings',
'edamame',
'eggs_benedict',
'escargots',
'falafel',
'filet_mignon',
'fish_and_chips',
'foie_gras',
'french_fries',
'french_onion_soup',
'french_toast',
'fried_calamari',
'fried_rice',
'frozen_yogurt',
'garlic_bread',
'gnocchi',
'greek_salad',
'grilled_cheese_sandwich',
'grilled_salmon',
'guacamole',
'gyoza',
'hamburger',
'hot_and_sour_soup',
'hot_dog',
'huevos_rancheros',
'hummus',
'ice_cream',
'lasagna',
'lobster_bisque',
'lobster_roll_sandwich',
'macaroni_and_cheese',
'macarons',
'miso_soup',
'mussels',
'nachos',
'omelette',
'onion_rings',
'oysters',
'pad_thai',
'paella',
'pancakes',
'panna_cotta',
'peking_duck',
'pho',
'pizza',
'pork_chop',
'poutine',
'prime_rib',
'pulled_pork_sandwich',
'ramen',
'ravioli',
'red_velvet_cake',
'risotto',
'samosa',
'sashimi',
'scallops',
'seaweed_salad',
'shrimp_and_grits',
'spaghetti_bolognese',
'spaghetti_carbonara',
'spring_rolls',
'steak',
'strawberry_shortcake',
'sushi',
'tacos',
'takoyaki',
'tiramisu',
'tuna_tartare',
'waffles'
]
@app.post("/net/image/prediction/{image_link}")
async def get_net_image_prediction(image_link: str):
img_path = tf.keras.utils.get_file(
origin = image_link
)
img = tf.keras.utils.load_img(
img_path,
target_size = (224, 224)
)
img_array = tf.keras.utils.img_to_array(img)
img_array = tf.expand_dims(img_array, 0)
pred = model.predict(img_array)
score = tf.nn.softmax(pred[0])
class_prediction = class_names[np.argmax(score)]
model_score = round(np.max(score) * 100, 2)
return {
"model_prediction_class": class_prediction,
"model_prediction_score": model_score
}DescriptionI'm trying to make a RESTful API for image classification, I got the code that makes the predictions to work on jupyter notebook but I'm getting the error below when running through the API. For reference, here's the output on jupyter. Operating SystemWindows Operating System DetailsNo response FastAPI Version0.73.0 Python Version3.9.7 Additional ContextNo response |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
|
I assume you are sending the image URL as you are doing it in the Jupyter notebook. I don't think you can send a URL in your path params. Try putting it in as query parameter. Something like: https://yourdomain.com/classification?imageUrl=https://cdn.fxyz.co/image.jpeg |
Beta Was this translation helpful? Give feedback.
-
|
I can't view the image you sent. But I looked into your suggestion of using query parameters, it now works. Thanks! Here's the working implementation as reference for anyone who might run into this problem in the future. |
Beta Was this translation helpful? Give feedback.


I can't view the image you sent. But I looked into your suggestion of using query parameters, it now works. Thanks!
Here's the working implementation as reference for anyone who might run into this problem in the future.