Rumah > pembangunan bahagian belakang > Tutorial Python > Cara menggunakan model pembelajaran mesin untuk ramalan data dalam FastAPI

Cara menggunakan model pembelajaran mesin untuk ramalan data dalam FastAPI

WBOY
Lepaskan: 2023-07-28 12:45:09
asal
1107 orang telah melayarinya

Cara menggunakan model pembelajaran mesin untuk ramalan data dalam FastAPI

Pengenalan:
Dengan pembangunan pembelajaran mesin, semakin banyak senario aplikasi memerlukan penyepaduan model pembelajaran mesin ke dalam sistem sebenar. FastAPI ialah rangka kerja web Python berprestasi tinggi berdasarkan rangka kerja pengaturcaraan tak segerak Ia menyediakan kaedah pembangunan API yang mudah dan mudah digunakan dan sangat sesuai untuk membina perkhidmatan ramalan pembelajaran mesin. Artikel ini akan memperkenalkan cara menggunakan model pembelajaran mesin untuk ramalan data dalam FastAPI dan memberikan contoh kod yang berkaitan.

Bahagian Pertama: Persediaan
Sebelum bermula, kita perlu menyiapkan beberapa persiapan.

  1. Pasang perpustakaan yang diperlukan
    Pertama, kita perlu memasang beberapa perpustakaan yang diperlukan. Anda boleh menggunakan arahan pip untuk memasang perpustakaan seperti FastAPI, uvicorn dan scikit-learn.
pip install fastapi
pip install uvicorn
pip install scikit-learn
Salin selepas log masuk
  1. Sediakan model pembelajaran mesin
    Seterusnya, kita perlu menyediakan model pembelajaran mesin terlatih. Dalam artikel ini, kita akan menggunakan model regresi linear mudah sebagai contoh. Model boleh dibina dan dilatih menggunakan perpustakaan 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)
Salin selepas log masuk

Bahagian 2: Membina aplikasi FastAPI
Selepas persiapan selesai, kita boleh mula membina aplikasi FastAPI.

  1. Import perpustakaan yang diperlukan
    Pertama, kami perlu mengimport beberapa perpustakaan yang diperlukan, termasuk FastAPI, uvicorn dan model yang baru kami latih.
from fastapi import FastAPI
from pydantic import BaseModel

# 导入模型
from sklearn.linear_model import LinearRegression
Salin selepas log masuk
  1. Tentukan model data input dan output
    Seterusnya, kita perlu menentukan model data input dan output. Dalam artikel ini, data input ialah nombor titik terapung, dan data output ialah nombor titik terapung.
class InputData(BaseModel):
    input_value: float

class OutputData(BaseModel):
    output_value: float
Salin selepas log masuk
  1. Buat contoh aplikasi FastAPI
    Kemudian, kita boleh mencipta contoh FastAPI.
app = FastAPI()
Salin selepas log masuk
  1. Tentukan laluan untuk ramalan data
    Seterusnya, kita boleh menentukan laluan untuk mengendalikan permintaan untuk ramalan data. Kami akan menggunakan kaedah POST untuk mengendalikan permintaan ramalan data dan menggunakan InputData sebagai data input permintaan. 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
Salin selepas log masuk

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

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

Selepas menyiapkan pembinaan aplikasi FastAPI, kami boleh menjalankan aplikasi dan menguji fungsi ramalan data.

  1. Jalankan aplikasi FastAPI
    Jalankan arahan berikut dalam baris arahan untuk memulakan aplikasi FastAPI.
{
    "output_value": 10.0
}
Salin selepas log masuk


Mulakan permintaan ramalan data

Gunakan alat, seperti Posmen, untuk menghantar permintaan POST ke http://localhost:8000/predict dan sertakan ia dalam badan permintaan Lulus parameter input_value.

Sebagai contoh, menghantar badan permintaan berikut:

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
Salin selepas log masuk
🎜🎜Lihat keputusan ramalan🎜 sepatutnya menerima respons yang mengandungi keputusan ramalan. 🎜🎜rrreee🎜Kesimpulan: 🎜Artikel ini menerangkan cara menggunakan model pembelajaran mesin dalam FastAPI untuk ramalan data. Dengan mengikuti panduan dalam artikel ini, anda boleh dengan mudah menyepadukan model pembelajaran mesin anda sendiri ke dalam aplikasi FastAPI anda dan menyediakan perkhidmatan ramalan. 🎜🎜Kod contoh: 🎜rrreee🎜Saya berharap melalui pengenalan dan contoh kod artikel ini, anda boleh berjaya menggunakan model pembelajaran mesin untuk ramalan data dalam FastAPI. Saya doakan anda berjaya! 🎜

Atas ialah kandungan terperinci Cara menggunakan model pembelajaran mesin untuk ramalan data dalam FastAPI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan