Whatsapp Telegram Telegram Call Anrufen

Bereitstellung von Keras-Modellen


1. Exportieren von Modellen für die Produktion

Bevor ein Keras-Modell in die Produktion überführt werden kann, muss es exportiert werden. Dies kann in verschiedenen Formaten erfolgen, die für unterschiedliche Anwendungsfälle geeignet sind, wie zum Beispiel das HDF5-Format oder das TensorFlow SavedModel-Format.

Beispiel: Exportieren eines Modells im HDF5-Format
from keras.models import Sequential
from keras.layers import Dense

# Erstellen eines einfachen Modells
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(784,)))
model.add(Dense(10, activation='softmax'))

# Kompilieren des Modells
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# Speichern des Modells im HDF5-Format
model.save('model.h5')
print("Modell im HDF5-Format gespeichert.")

Ausgabe:

Modell im HDF5-Format gespeichert.

Beispiel: Exportieren eines Modells im TensorFlow SavedModel-Format

import tensorflow as tf
from keras.models import Sequential
from keras.layers import Dense

# Erstellen eines einfachen Modells
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(784,)))
model.add(Dense(10, activation='softmax'))

# Kompilieren des Modells
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# Speichern des Modells im TensorFlow SavedModel-Format
tf.saved_model.save(model, 'saved_model/')
print("Modell im TensorFlow SavedModel-Format gespeichert.")

Ausgabe:

Modell im TensorFlow SavedModel-Format gespeichert.

2. Bereitstellung von Modellen mit TensorFlow Serving

TensorFlow Serving ist ein flexibles, leistungsstarkes Serving-System für maschinelle Lernmodelle. Es ist speziell für Produktionsumgebungen entwickelt und unterstützt TensorFlow-Modelle direkt.


Beispiel: Bereitstellung eines Modells mit TensorFlow Serving

Installieren Sie TensorFlow Serving:

docker pull tensorflow/serving

Starten Sie TensorFlow Serving und laden Sie das Modell:

docker run -p 8501:8501 --name=tfserving_model --mount type=bind,source=$(pwd)/saved_model,target=/models/saved_model -e MODEL_NAME=saved_model -t tensorflow/serving

Senden Sie eine Anforderung an den TensorFlow Serving-Server:

import requests
import json
import numpy as np

# Beispiel-Eingabedaten
data = np.random.rand(1, 784).tolist()

# Erstellen der Anforderung
payload = {
    "signature_name": "serving_default",
    "instances": data
}

# Senden der Anforderung
response = requests.post('http://localhost:8501/v1/models/saved_model:predict', json=payload)

# Ausgabe der Antwort
print(response.json())

Ausgabe:

3. Bereitstellung von Modellen auf Cloud-Plattformen

Die Bereitstellung von Modellen auf Cloud-Plattformen wie Google Cloud, AWS und Azure bietet Skalierbarkeit und einfache Integration in bestehende Anwendungen.


Beispiel: Bereitstellung eines Modells auf Google Cloud AI Platform

Installieren Sie das Google Cloud SDK und konfigurieren Sie es:

gcloud init

Erstellen Sie ein Bucket in Google Cloud Storage und laden Sie das Modell hoch:

gsutil mb gs://my-bucket
gsutil cp -r saved_model/ gs://my-bucket/saved_model/

Senden Sie eine Anforderung an das bereitgestellte Modell:

from googleapiclient import discovery

# Authentifizieren Sie sich mit dem Google Cloud SDK
project_id = 'my-project-id'
model_name = 'my_model'
version_name = 'v1'

# Erstellen des API-Clients
service = discovery.build('ml', 'v1')
name = f'projects/{project_id}/models/{model_name}/versions/{version_name}'

# Beispiel-Eingabedaten
data = np.random.rand(1, 784).tolist()

# Erstellen der Anforderung
payload = {
    'instances': data
}

# Senden der Anforderung
response = service.projects().predict(name=name, body=payload).execute()

# Ausgabe der Antwort
print(response)

Ausgabe:

{'predictions': [[...]]}

4. Bereitstellung von Modellen auf Django

Die Integration von Keras-Modellen in eine Django-Webanwendung ermöglicht es Ihnen, ML-Modelle als Teil einer Webanwendung bereitzustellen.


Beispiel: Bereitstellung eines Modells auf Django

1. Erstellen Sie eine Django-Anwendung und installieren Sie die erforderlichen Bibliotheken:

pip install django djangorestframework tensorflow
django-admin startproject myproject
cd myproject
django-admin startapp myapp

2. Erstellen Sie eine View, um Vorhersagen mit dem Modell zu machen:

# myapp/views.py
from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response
import numpy as np
from keras.models import load_model

# Laden des Modells
model = load_model('path/to/model.h5')

class PredictView(APIView):
    def post(self, request, *args, **kwargs):
        data = request.data.get('input')
        data = np.array(data).reshape(1, -1)
        prediction = model.predict(data)
        return Response({'prediction': prediction.tolist()})


3. Erstellen Sie eine URL-Konfiguration für die View:

# myapp/urls.py
from django.urls import path
from .views import PredictView

urlpatterns = [
    path('predict/', PredictView.as_view(), name='predict'),
]

4. Fügen Sie die URL-Konfiguration zu den Hauptrouten hinzu:

# myproject/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('myapp.urls')),
]

5. Starten Sie den Django-Server:

python manage.py runserver

6. Senden Sie eine Anforderung an den Django-Server:

import requests

# Beispiel-Eingabedaten
data = np.random.rand(1, 784).tolist()

# Senden der Anforderung
response = requests.post('http://localhost:8000/api/predict/', json={'input': data})

# Ausgabe der Antwort
print(response.json())

Ausgabe:

{'prediction': [[...]]}


Diese detaillierten Erklärungen und Beispiele sollten Ihnen helfen, Keras-Modelle für die Produktion zu exportieren, mit TensorFlow Serving bereitzustellen, auf Cloud-Plattformen zu deployen und in Django-Webanwendungen zu integrieren.



CEO Image

Ali Ajjoub

info@ajjoub.com

Adresse 0049-15773651670

Adresse Jacob-winter-platz,1 01239 Dresden

Buchen Sie jetzt Ihren Termin für eine umfassende und individuelle Beratung.

Termin Buchen

Kontaktieren Sie uns

Lassen Sie uns K o n t a k t aufnehmen!