Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour créer un déploiement en ligne et une servitisation de modèles d'apprentissage automatique

Comment utiliser PHP pour créer un déploiement en ligne et une servitisation de modèles d'apprentissage automatique

WBOY
WBOYoriginal
2023-07-29 17:45:231389parcourir

Comment utiliser PHP pour créer un déploiement en ligne et une servitisation de modèles d'apprentissage automatique

Introduction :
Avec le développement rapide de l'intelligence artificielle, les modèles d'apprentissage automatique sont de plus en plus utilisés dans divers domaines. Cependant, pour les développeurs, comment déployer rapidement le modèle formé dans l'environnement en ligne et fournir des interfaces orientées services est devenu un problème urgent à résoudre. Cet article présentera comment utiliser PHP pour créer un déploiement en ligne et une servitisation de modèles d'apprentissage automatique, et fournira des exemples de code correspondants.

1. Configuration de l'environnement
Afin de créer le modèle de déploiement en ligne et d'apprentissage automatique orienté services, nous devons d'abord créer un environnement de développement PHP. Vous pouvez utiliser XAMPP, WampServer et d'autres outils pour créer un environnement de développement PHP local. De cette façon, nous pouvons écrire et exécuter notre code en utilisant PHP.

2. Préparer le modèle d'apprentissage automatique formé
Avant de commencer à créer le service de déploiement en ligne, nous devons préparer un modèle d'apprentissage automatique déjà formé. Vous pouvez utiliser Python ou d'autres frameworks d'apprentissage automatique pour entraîner le modèle et enregistrer le modèle entraîné sous forme de fichier. Ici, nous prenons comme exemple un modèle de classification d'images simple. Nous enregistrons le modèle sous forme de fichier .h5.

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, MaxPooling2D, Flatten

# 构建模型
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(10, activation='softmax'))

# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# 训练模型
...
# 省略训练代码

# 保存模型
model.save('model.h5')

3. Utilisez PHP pour charger le modèle et faire des prédictions
En PHP, nous pouvons utiliser certaines bibliothèques tierces pour charger et utiliser des modèles formés par Python. Voici une méthode courante pour utiliser TensorFlow Serving pour charger le modèle et faire des prédictions.

Tout d'abord, nous devons installer l'extension PHP TensorFlow SERVing en PHP. Il peut être installé en utilisant composer :

composer require tensorflow-serving-api-php

Ensuite, nous pouvons écrire un simple script PHP pour charger le modèle et faire des prédictions.

<?php

require 'vendor/autoload.php';

use TensorFlowServingPredictRequest;
use TensorFlowServingPredictResponse;
use GuzzleHttpClient;

// 定义请求数据
$request = new PredictRequest();
$request->setModelSpecName('model');
$request->setModelSpecSignatureName('serving_default');

// 转换输入数据
$input = [
    'image' => [
        'b64' => base64_encode(file_get_contents('image.jpg'))
    ]
];
$request->setInputs($input);

// 发送请求
$client = new Client(['base_uri' => 'http://localhost:8501']);
$response = $client->post('/v1/models/model:predict', [
    'headers' => ['Content-Type' => 'application/json'],
    'body' => $request->serializeToString()
]);
$response = new PredictResponse($response->getBody()->getContents());

// 获取预测结果
$outputs = $response->getOutputs();
$prediction = reset($outputs)['floatVal'][0];

Dans le code ci-dessus, nous définissons d'abord un objet PredictRequest et définissons le nom et la signature du modèle. Ensuite, nous convertissons les données d'entrée dans un format qui répond aux exigences du modèle et envoyons une requête à l'API REST de TensorFlow Serving. Enfin, nous obtenons les résultats de prédiction à partir des résultats renvoyés.

4. Déployer le script PHP dans l'environnement en ligne
Après avoir terminé le chargement et la prédiction du modèle, nous pouvons déployer le script PHP dans l'environnement en ligne et fournir une interface orientée service. Vous pouvez utiliser Apache, Nginx ou d'autres serveurs Web pour déployer des scripts PHP.

sudo apt-get install apache2
sudo service apache2 start

Enregistrez le script PHP en tant que fichier php et placez-le dans le répertoire racine du site Web d'Apache. Nous pouvons ensuite utiliser notre modèle de machine learning en accédant à l’URL correspondante.

Résumé :
Cet article explique comment utiliser PHP pour créer un déploiement et un service en ligne de modèles d'apprentissage automatique. En créant un environnement de développement PHP, en préparant le modèle formé, en utilisant PHP pour charger le modèle et faire des prédictions, et enfin en déployant le script PHP dans l'environnement en ligne, nous pouvons facilement fournir le modèle d'apprentissage automatique formé en tant que service pour réaliser des fonctions de prédiction en ligne. . J'espère que cet article sera utile pour le déploiement en ligne et les modèles d'apprentissage automatique orientés services utilisant PHP.

Lien de référence :
[1] Document officiel de TensorFlow Serving : https://www.tensorflow.org/tfx/serving/api_rest

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