Maison >développement back-end >Tutoriel Python >Comment utiliser des modèles d'apprentissage automatique pour la prédiction de données dans FastAPI

Comment utiliser des modèles d'apprentissage automatique pour la prédiction de données dans FastAPI

WBOY
WBOYoriginal
2023-07-28 12:45:091102parcourir

Comment utiliser des modèles d'apprentissage automatique pour la prédiction de données dans FastAPI

Introduction :
Avec le développement de l'apprentissage automatique, de plus en plus de scénarios d'application nécessitent l'intégration de modèles d'apprentissage automatique dans des systèmes réels. FastAPI est un framework Web Python hautes performances basé sur un framework de programmation asynchrone. Il fournit une méthode de développement d'API simple et facile à utiliser et est très adapté à la création de services de prédiction d'apprentissage automatique. Cet article explique comment utiliser les modèles d'apprentissage automatique pour la prédiction de données dans FastAPI et fournit des exemples de code pertinents.

Première partie : Préparation
Avant de commencer, nous devons terminer quelques préparatifs.

  1. Installer les bibliothèques nécessaires
    Tout d'abord, nous devons installer certaines bibliothèques nécessaires. Vous pouvez utiliser la commande pip pour installer des bibliothèques telles que FastAPI, uvicorn et scikit-learn.
pip install fastapi
pip install uvicorn
pip install scikit-learn
  1. Préparer le modèle d'apprentissage automatique
    Ensuite, nous devons préparer un modèle d'apprentissage automatique entraîné. Dans cet article, nous utiliserons un modèle de régression linéaire simple comme exemple. Les modèles peuvent être créés et entraînés à l'aide de la bibliothèque scikit-learn.
from sklearn.linear_model import LinearRegression
import numpy as np

# 构建模型
model = LinearRegression()

# 准备训练数据
X_train = np.array(...).reshape(-1, 1)  # 输入特征
y_train = np.array(...)  # 目标变量

# 训练模型
model.fit(X_train, y_train)

Partie 2 : Création de l'application FastAPI
Une fois les préparatifs terminés, nous pouvons commencer à créer l'application FastAPI.

  1. Importer les bibliothèques nécessaires
    Tout d'abord, nous devons importer certaines bibliothèques nécessaires, notamment FastAPI, uvicorn et le modèle que nous venons de former.
from fastapi import FastAPI
from pydantic import BaseModel

# 导入模型
from sklearn.linear_model import LinearRegression
  1. Définir le modèle de données d'entrée et de sortie
    Ensuite, nous devons définir le modèle de données d'entrée et de sortie. Dans cet article, les données d'entrée sont un nombre à virgule flottante et les données de sortie sont un nombre à virgule flottante.
class InputData(BaseModel):
    input_value: float

class OutputData(BaseModel):
    output_value: float
  1. Créer une instance d'application FastAPI
    Ensuite, nous pouvons créer une instance de FastAPI.
app = FastAPI()
  1. Définir l'itinéraire pour la prédiction des données
    Ensuite, nous pouvons définir un itinéraire pour gérer les demandes de prédiction des données. Nous utiliserons la méthode POST pour gérer la demande de prédiction de données et utiliserons InputData comme données d'entrée de la demande. POST方法来处理数据预测请求,并将InputData作为请求的输入数据。
@app.post('/predict')
async def predict(input_data: InputData):
    # 调用模型进行预测
    input_value = input_data.input_value
    output_value = model.predict([[input_value]])

    # 构造输出数据
    output_data = OutputData(output_value=output_value[0])

    return output_data

第三部分:运行FastAPI应用
在完成FastAPI应用的构建后,我们可以运行应用,并测试数据预测的功能。

  1. 运行FastAPI应用
    在命令行中运行以下命令,启动FastAPI应用。
uvicorn main:app --reload
  1. 发起数据预测请求
    使用工具,如Postman,发送一个POST请求到http://localhost:8000/predict,并在请求体中传递一个input_value
  2. {
        "input_value": 5.0
    }
Partie 3 : Exécuter l'application FastAPI

Après avoir terminé la construction de l'application FastAPI, nous pouvons exécuter l'application et tester la fonction de prédiction des données.

  1. Exécutez l'application FastAPI
    Exécutez la commande suivante dans la ligne de commande pour démarrer l'application FastAPI.
{
    "output_value": 10.0
}


Initiez une demande de prédiction de données

Utilisez un outil, tel que Postman, pour envoyer une requête POST à http://localhost:8000/predict et incluez dans le corps de la requête. Passez un paramètre input_value.

Par exemple, l'envoi du corps de requête suivant :

from fastapi import FastAPI
from pydantic import BaseModel
from sklearn.linear_model import LinearRegression
import numpy as np

# 创建模型和训练数据
model = LinearRegression()
X_train = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
y_train = np.array([2, 4, 6, 8, 10])
model.fit(X_train, y_train)

# 定义输入输出数据模型
class InputData(BaseModel):
    input_value: float

class OutputData(BaseModel):
    output_value: float

# 创建FastAPI应用实例
app = FastAPI()

# 定义数据预测的路由
@app.post('/predict')
async def predict(input_data: InputData):
    input_value = input_data.input_value
    output_value = model.predict([[input_value]])
    output_data = OutputData(output_value=output_value[0])
    return output_data
🎜🎜Afficher les résultats de la prédiction🎜 devrait recevoir une réponse contenant les résultats de la prédiction. 🎜🎜rrreee🎜Conclusion : 🎜Cet article explique comment utiliser des modèles d'apprentissage automatique dans FastAPI pour la prédiction de données. En suivant les conseils de cet article, vous pouvez facilement intégrer votre propre modèle d'apprentissage automatique dans votre application FastAPI et fournir des services de prédiction. 🎜🎜Exemple de code : 🎜rrreee🎜J'espère que grâce à l'introduction et à l'exemple de code de cet article, vous pourrez utiliser avec succès des modèles d'apprentissage automatique pour la prédiction de données dans FastAPI. Je vous souhaite du succès ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn