1. Exportieren von Modellen für die Produktion
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.