Zurück zu allen Blogbeiträgen

Car Model Classification II: Deployment von TensorFlow-Modellen in Docker mit TensorFlow Serving

  • Artificial Intelligence
  • Coding
  • Deep Learning
12. Mai 2021
·

Team statworx

Im ersten Beitrag dieser Serie haben wir Transfer Learning im Detail besprochen und ein Modell zur Klassifizierung von Automodellen erstellt. In diesem Beitrag werden wir das Problem der Modellbereitstellung am Beispiel des im ersten Beitrags vorgestelltenTransferModel diskutieren.

Ein Modell ist in der Praxis nutzlos, wenn es keine einfache Möglichkeit gibt, damit zu interagieren. Mit anderen Worten: Wir brauchen eine API für unsere Modelle. TensorFlow Serving wurde entwickelt, um diese Funktionalitäten für TensorFlow-Modelle bereitzustellen. In diesem Beitrag zeigen wir, wie ein TensorFlow Serving Server in einem Docker-Container gestartet werden kann und wie wir mit dem Server über HTTP-Anfragen interagieren können.

Wenn ihr noch nie mit Docker gearbeitet habt, empfehlen wir, dieses Tutorial von Docker durchzuarbeiten, bevor ihr diesen Artikel lest. Wenn ihr euch ein Beispiel für das Deployment in Docker ansehen möchtet, empfehlen wir euch, diesen Blogbeitrag von unserem Kollegen Oliver Guggenbühl zu lesen, in dem beschrieben wird, wie ein R-Skript in Docker ausgeführt werden kann.

Einführung in TensorFlow Serving

Zum Einstieg geben wir euch zunächst einen Überblick über TensorFlow Serving.

TensorFlow Serving ist das Serving-System von TensorFlow, das entwickelt wurde, um das Deployment von verschiedenen Modellen mit einer einheitlichen API zu ermöglichen. Unter Verwendung der Abstraktion von Servables, die im Grunde Objekte sind, mit denen Inferenz durchgeführt werden kann, ist es möglich, mehrere Versionen von deployten Modellen zu serven. Das ermöglicht zum Beispiel, dass eine neue Version eines Modells hochgeladen werden kann, während die vorherige Version noch für Kunden verfügbar ist. Im Großen und Ganzen sind sogenannte Manager für die Verwaltung des Lebenszyklus von Servables verantwortlich, d. h. für das Laden, Bereitstellen und Löschen.

In diesem Beitrag werden wir zeigen, wie eine einzelne Modellversion deployed werden kann. Die unten aufgeführten Code-Beispiele zeigen, wie ein Server in einem Docker-Container gestartet werden kann und wie die Predict API verwendet werden kann, um mit dem Modell zu interagieren. Um mehr über TensorFlow Serving zu erfahren, verweisen wir auf die TensorFlow-Website.

Implementierung

Wir werden nun die folgenden drei Schritte besprechen, die erforderlich sind, um das Modell einzusetzen und Requests zu senden.

  • Speichern eines Modells im richtigen Format und in der richtigen Ordnerstruktur mit TensorFlow SavedModel
  • Ausführen eines Serving-Servers innerhalb eines Docker-Containers
  • Interaktion mit dem Modell über REST Requests

Speichern von TensorFlow-Modellen

Für diejenigen, die den ersten Beitrag dieser Serie nicht gelesen haben, folgt nun eine kurze Zusammenfassung der wichtigsten Punkte, die zum Verständnis des nachfolgenden Codes notwendig sind:

Das TransferModel.model (unten im Code auch self.model) ist eine tf.keras.Model Instanz, also kann es mit der eingebauten save Methode gespeichert werden. Da das Modell auf im Internet gescrapten Daten trainiert wurde, können sich die Klassenbezeichnungen beim erneuten Scraping der Daten ändern. Wir speichern daher die Index-Klassen-Zuordnung beim Speichern des Modells in classes.pickle ab. TensorFlow Serving erfordert, dass das Modell im SavedModel Format gespeichert wird. Wenn Sie tf.keras.Model.save verwenden, muss der Pfad ein Ordnername sein, sonst wird das Modell in einem anderen, inkompatiblen Format (z.B. HDF5) gespeichert. Im Code unten enthält folderpath den Pfad des Ordners, in dem wir alle modellrelevanten Informationen speichern wollen. Das SavedModel wird unter folderpath/model gespeichert und das Class Mapping wird als folderpath/classes.pickle gespeichert.

def save(self, folderpath: str):
    """
    Save the model using tf.keras.model.save

    Args:
        folderpath: (Full) Path to folder where model should be stored
    """

    # Make sure folderpath ends on slash, else fix
    if not folderpath.endswith("/"):
        folderpath += "/"

    if self.model is not None:
        os.mkdir(folderpath)
        model_path = folderpath + "model"
        # Save model to model dir
        self.model.save(filepath=model_path)
        # Save associated class mapping
        class_df = pd.DataFrame({'classes': self.classes})
        class_df.to_pickle(folderpath + "classes.pickle")
    else:
        raise AttributeError('Model does not exist')

TensorFlow Serving im Docker Container starten

Nachdem wir das Modell auf der Festplatte gespeichert haben, müssen wir nun den TensorFlow Serving Server starten. Am schnellsten deployen kann man TensorFlow Serving mithilfe eines Docker-Containers. Der erste Schritt ist daher das Ziehen des TensorFlow Serving Images von DockerHub. Das kann im Terminal mit dem Befehl docker pull tensorflow/serving gemacht werden.

Dann können wir den unten stehenden Code verwenden, um einen TensorFlow Serving Container zu starten. Er führt den Shell-Befehl zum Starten eines Containers aus. Die in docker_run_cmd gesetzten Optionen sind die folgenden:

  • Das Serving-Image exponiert Port 8501 für die REST-API, die wir später zum Senden von Anfragen verwenden werden. Wir mappen mithilfe der -p- Flag also den Host-Port 8501 auf den Port 8501 des Containers.
  • Als nächstes binden wir unser Modell mit -v in den Container ein. Es ist wichtig, dass das Modell in einem versionierten Ordner gespeichert ist (hier MODEL_VERSION=1); andernfalls wird das Serving-Image das Modell nicht finden. Der model_path_guest muss also die Form <path>/<model name>/MODEL_VERSION haben, wobei MODEL_VERSION eine ganze Zahl ist.
  • Mit -e können wir die Umgebungsvariable MODEL_NAME setzen, die den Namen unseres Modells enthält.
  • Die Option --name tf_serving wird nur benötigt, um unserem neuen Docker-Container einen bestimmten Namen zuzuweisen.

Wenn wir versuchen, diese Datei zweimal hintereinander auszuführen, wird der Docker-Befehl beim zweiten Mal nicht ausgeführt, da bereits ein Container mit dem Namen tf_serving existiert. Um dieses Problem zu vermeiden, verwenden wir docker_run_cmd_cond. Hier prüfen wir zunächst, ob ein Container mit diesem spezifischen Namen bereits existiert und läuft. Wenn ja, lassen wir ihn gleich; wenn nicht, prüfen wir, ob eine beendete Version des Containers existiert. Wenn ja, wird diese gelöscht und ein neuer Container gestartet; wenn nicht, wird direkt ein neuer Container erstellt.

import os

MODEL_FOLDER = 'models'
MODEL_SAVED_NAME = 'resnet_unfreeze_all_filtered.tf'
MODEL_NAME = 'resnet_unfreeze_all_filtered'
MODEL_VERSION = '1'

# Define paths on host and guest system
model_path_host = os.path.join(os.getcwd(), MODEL_FOLDER, MODEL_SAVED_NAME, 'model')
model_path_guest = os.path.join('/models', MODEL_NAME, MODEL_VERSION)

# Container start command
docker_run_cmd = f'docker run ' 
                 f'-p 8501:8501 ' 
                 f'-v {model_path_host}:{model_path_guest} ' 
                 f'-e MODEL_NAME={MODEL_NAME} ' 
                 f'-d ' 
                 f'--name tf_serving ' 
                 f'tensorflow/serving'

# If container is not running, create a new instance and run it
docker_run_cmd_cond = f'if [ ! "(docker ps -aq -f status=exited -f name=tf_serving)" ]; then 														n' 
                      f'   		docker rm tf_serving n' 
                      f'   fi n' 
                      f'   {docker_run_cmd} n' 
                      f'fi'

# Start container
os.system(docker_run_cmd_cond)

Anstatt das Modell von unserer lokalen Festplatte zu mounten, indem wir das -v-Flag im Docker-Befehl verwenden, könnten wir das Modell auch in das Docker-Image kopieren, so dass das Modell einfach durch das Ausführen eines Containers und die Angabe der Port-Zuweisungen bedient werden könnte. Es ist wichtig zu beachten, dass in diesem Fall das Modell mit der Ordnerstruktur Ordnerpfad/<Modellname>/1 gespeichert werden muss, wie oben erklärt. Wenn dies nicht der Fall ist, wird der TensorFlow Serving Container das Modell nicht finden. Wir werden hier nicht weiter auf diesen Fall eingehen. Wenn ihr daran interessiert seid, eure Modelle auf diese Weise zu deployen, verweisen wir auf diese Anleitung auf der TensorFlow Webseite.

REST Request

Da das Modell nun geserved ist und bereit zur Verwendung ist, brauchen wir einen Weg, um damit zu interagieren. TensorFlow Serving bietet zwei Optionen, um Anfragen an den Server zu senden: gRCP und REST API, welche beide an unterschiedlichen Ports verfügbar sind. Im folgenden Codebeispiel werden wir REST verwenden, um das Modell abzufragen.

Zuerst laden wir ein Bild von der Festplatte, für das wir eine Vorhersage machen wollen. Dies kann mit dem image Modul von TensorFlow gemacht werden. Als nächstes konvertieren wir das Bild in ein Numpy-Array mittels der img_to_array-Methode. Der nächste und letzte Schritt ist entscheidend für unseren Car Classifier Use Case: da wir das Trainingsbild vorverarbeitet haben, bevor wir unser Modell trainiert haben (z.B. Normalisierung), müssen wir die gleiche Transformation auf das Bild anwenden, das wir vorhersagen wollen. Die praktische Funktion "preprocess_input" sorgt dafür, dass alle notwendigen Transformationen auf unser Bild angewendet werden.

from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.resnet_v2 import preprocess_input

# Load image
img = image.load_img(path, target_size=(224, 224))
img = image.img_to_array(img)

# Preprocess and reshape data
img = preprocess_input(img)
img = img.reshape(-1, *img.shape)

Die RESTful API von TensorFlow Serving bietet mehrere Endpunkte. Im Allgemeinen akzeptiert die API Post-Requests der folgenden Struktur:

POST http://host:port/<URI>:<VERB>

URI: /v1/models/{MODEL_VERSION}]
VERB: classify|regress|predict

Für unser Modell können wir die folgende URL für Vorhersagen verwenden: http://localhost:8501/v1/models/resnet_unfreeze_all_filtered:predict

Die Portnummer (hier 8501) ist der Port des Hosts, den wir oben angegeben haben, um ihn auf den Port 8501 des Serving-Images abzubilden. Wie oben erwähnt, ist 8501 der Port des Serving-Containers, der für die REST-API verwendet wird. Die Modellversion ist optional und wird standardmäßig auf die neueste Version gesetzt, wenn sie weggelassen wird.

In Python kann die Bibliothek requests verwendet werden, um HTTP-Anfragen zu senden. Wie in der Dokumentation angegeben, muss der Request-Body für die predict API ein JSON-Objekt mit den unten aufgeführten Schlüssel-Wert-Paaren sein:

  • signature_name – zu verwendende Signatur (weitere Informationen finden Sie in der Dokumentation)
  • instances – Modelleingabe im Zeilenformat
import json
import requests

# Send image as list to TF serving via json dump
request_url = 'http://localhost:8501/v1/models/resnet_unfreeze_all_filtered:predict'
request_body = json.dumps({"signature_name": "serving_default", "instances": img.tolist()})
request_headers = {"content-type": "application/json"}
json_response = requests.post(request_url, data=request_body, headers=request_headers)
response_body = json.loads(json_response.text)
predictions = response_body['predictions']

# Get label from prediction
y_hat_idx = np.argmax(predictions)
y_hat = classes[y_hat_idx]

Der Response-Body ist ebenfalls ein JSON-Objekt mit einem einzigen Schlüssel namens predictions. Da wir für jede Zeile in den Instanzen die Wahrscheinlichkeit für alle 300 Klassen erhalten, verwenden wir np.argmax, um die wahrscheinlichste Klasse zurückzugeben. Alternativ hätten wir auch die übergeordnete classify-API verwenden können.

Fazit

In diesem zweiten Blog-Artikel der Serie "Car Model Classification" haben wir gelernt, wie ein TensorFlow-Modell zur Bilderkennung mittels TensorFlow Serving als RestAPI bereitgestellt werden kann, und wie damit Modellabfragen ausgeführt werden können.

Dazu haben wir zuerst das Modell im SavedModel Format abgespeichert. Als nächstes haben wir den TensorFlow Serving-Server in einem Docker-Container gestartet. Schließlich haben wir gezeigt, wie man Vorhersagen aus dem Modell mit Hilfe der API-Endpunkte und einem korrekt spezifizierten Request Body anfordert.

Ein Hauptkritikpunkt an Deep Learning Modellen jeglicher Art ist die fehlende Erklärbarkeit der Vorhersagen. Im dritten Beitrag werden wir zeigen, wie man Modellvorhersagen mit einer Methode namens Grad-CAM erklären kann.

Linkedin Logo
Marcel Plaschke
Head of Strategy, Sales & Marketing
Beratung vereinbaren
Zugehörige Leistungen
No items found.

Weitere Blogartikel

  • Coding
  • Python
  • Statistics & Methods
Ensemble-Methoden im maschinellen Lernen: Bagging & Subagging
Team statworx
15.4.2025
Mehr erfahren
  • Deep Learning
  • Python
  • Tutorial
Verwendung von Reinforcement Learning zum Spielen von Super Mario Bros auf NES mit TensorFlow
Sebastian Heinz
15.4.2025
Mehr erfahren
  • Coding
  • Machine Learning
  • R
Abstimmung von Random Forest auf Zeitreihendaten
Team statworx
15.4.2025
Mehr erfahren
  • Data Science
  • Statistics & Methods
Modellregularisierung – The Bayesian Way
Thomas Alcock
15.4.2025
Mehr erfahren
  • Coding
  • Python
  • Statistics & Methods
Wie man Gradient Boosting um den Faktor Zwei beschleunigt
Team statworx
15.4.2025
Mehr erfahren
  • Coding
  • Frontend
  • R
Dynamische UI-Elemente in Shiny - Teil 2
Team statworx
15.4.2025
Mehr erfahren
  • Coding
  • R
Warum heißen sie so?! – Ursprung und Bedeutung von R-Paketnamen
Team statworx
15.4.2025
Mehr erfahren
  • Data Engineering
  • Python
Von überall aus auf deinen Spark-Cluster zugreifen – mit Apache Livy
Team statworx
15.4.2025
Mehr erfahren
  • Coding
  • Data Engineering
  • Data Science
Testen von REST-APIs mit Newman
Team statworx
14.4.2025
Mehr erfahren
  • Machine Learning
  • Python
  • R
XGBoost: Entscheidungsbaum vs. Lineares Modell
Fabian Müller
14.4.2025
Mehr erfahren
  • Data Science
  • R
Kombination von Preiselastizitäten und Verkaufsprognosen zur Verkaufssteigerung
Team statworx
14.4.2025
Mehr erfahren
  • Data Science
  • Machine Learning
  • R
Zeitreihenvorhersage mit Random Forest
Team statworx
14.4.2025
Mehr erfahren
  • Data Visualization
  • R
Gemeinschaftsdetektion mit Louvain und Infomap
Team statworx
14.4.2025
Mehr erfahren
  • Machine Learning
Machine Learning Goes Causal II: Der kausale Bruder des Random Forests
Team statworx
11.4.2025
Mehr erfahren
  • Coding
  • Data Visualization
  • R
Animierte Diagramme mit ggplot und gganimate
Team statworx
8.4.2025
Mehr erfahren
  • Artificial Intelligence
AI Trends Report 2025: Die 16 Trends im Überblick
Tarik Ashry
25.2.2025
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • GenAI
Wie ein CustomGPT Effizienz und Kreativität bei hagebau fördert
Tarik Ashry
15.1.2025
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Human-centered AI
Explainable AI in der Praxis: Mit der richtigen Methode die Black Box öffnen
Jonas Wacker
15.1.2025
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Zurück in die Zukunft: Die Geschichte von Generativer KI (Episode 4)
Tarik Ashry
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Zurück in die Zukunft: Die Geschichte von Generativer KI (Episode 3)
Tarik Ashry
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Zurück in die Zukunft: Die Geschichte von Generativer KI (Episode 2)
Tarik Ashry
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Culture
  • Data Science
  • Deep Learning
  • GenAI
  • Machine Learning
AI Trends Report 2024: statworx COO Fabian Müller zieht eine Zwischenbilanz
Tarik Ashry
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Maßgeschneiderte KI-Chatbots: Hohe Leistung und schnelle Integration vereint
Tarik Ashry
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Zurück in die Zukunft: Die Geschichte von Generativer KI (Episode 1)
Tarik Ashry
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Culture
  • Human-centered AI
KI in der Arbeitswelt: Wie wir Skepsis in Zuversicht verwandeln
Tarik Ashry
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • GenAI
  • statworx
Generative KI als Denkmaschine? Ein medientheoretischer Blick
Tarik Ashry
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Culture
  • Human-centered AI
Wie Führungskräfte die Datenkultur im Unternehmen stärken können
Tarik Ashry
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Science
Wie wir für Microsoft einen Chatbot mit echtem Wissen entwickelt haben
Team statworx
6.12.2024
Mehr erfahren
  • Data Science
  • Data Visualization
  • Frontend Solution
Warum Frontend-Entwicklung in Data Science-Anwendungen nützlich ist
Jakob Gepp
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • statworx
the byte - Wie wir ein KI-gesteuertes Pop-up Restaurant aufgebaut haben
Sebastian Heinz
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Strategy
Der AI-Act ist da – diese Risikoklassen sollte man kennen
Fabian Müller
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Machine Learning
Genderdarstellung in der KI – Teil 2: Automatisierte Erzeugung genderneutraler Versionen von Gesichtsbildern
Team statworx
6.12.2024
Mehr erfahren
  • Data Science
  • Human-centered AI
  • Statistics & Methods
Die Black-Box entschlüsseln – 3 Explainable AI Methoden zur Vorbereitung auf den AI-Act
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Strategy
Wie der AI-Act die KI-Branche verändern wird: Alles, was man jetzt darüber wissen muss
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Recap
  • statworx
Big Data & AI World 2023 Recap
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Statistics & Methods
Ein erster Einblick in unser Forecasting Recommender Tool
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Science
Vom Können, Tun und Wollen – Warum Datenkultur und Death Metal einiges miteinander gemeinsam haben
David Schlepps
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning
Wie man KI-generierte Avatare mit Hilfe von Stable Diffusion und Textual Inversion erstellt
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Strategy
Das Geheimnis der Datenkultur entschlüsseln: Diese Faktoren beeinflussen Kultur und Erfolg von Unternehmen
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Machine Learning
GPT-4 – Eine Einordnung der wichtigsten Neuerungen
Mareike Flögel
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Strategy
Knowledge Management mit NLP: So einfach verarbeitet man E-Mails mit KI
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning
3 Anwendungsfälle, wie ChatGPT die Kommunikation in Unternehmen revolutionieren wird
Ingo Marquart
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Machine Learning
  • Tutorial
Paradigmenwechsel in NLP: 5 Ansätze, um bessere Prompts zu schreiben
Team statworx
6.12.2024
Mehr erfahren
  • Recap
  • statworx
Ho ho ho – weihnachtlicher Küchenabriss
Julius Heinz
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning
Real-time Computer Vision: Gesichter erkennen mit einem Roboter
Sarah Sester
6.12.2024
Mehr erfahren
  • Recap
  • statworx
statworx @ UXDX Conf 2022
Markus Berroth
6.12.2024
Mehr erfahren
  • Data Engineering
  • Tutorial
Data Engineering – From Zero to Hero
Thomas Alcock
6.12.2024
Mehr erfahren
  • Recap
  • statworx
statworx @ vuejs.de Conf 2022
Jakob Gepp
6.12.2024
Mehr erfahren
  • Data Engineering
  • Data Science
Überwachung und Protokollierung von Anwendungen und Infrastruktur: Metriken und (Ereignis-)Protokolle
Team statworx
6.12.2024
Mehr erfahren
  • Data Engineering
  • Data Science
  • Python
Wie Du Deinen Code und Deine Abhängigkeiten in Python scannst
Thomas Alcock
6.12.2024
Mehr erfahren
  • Cloud Technology
  • Data Engineering
  • Data Science
Wie du dein Data Science Projekt fit für die Cloud machst
Alexander Broska
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
  • Machine Learning
Geschlechter­darstellung in der KI – Teil 1: Verwendung von StyleGAN zur Erforschung von Geschlechter­vielfalt bei der Bild­bearbeitung
Isabel Hermes
6.12.2024
Mehr erfahren
  • R
Das helfRlein Package – Eine Sammlung nützlicher Funktionen
Team statworx
6.12.2024
Mehr erfahren
  • Data Engineering
  • Data Science
  • Machine Learning
Data-Centric AI: Von Model-First zu Data-First KI-Prozessen
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Human-centered AI
  • Machine Learning
DALL-E 2: Warum Diskriminierung in der KI-Entwicklung nicht ignoriert werden kann
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Human-centered AI
statworx AI Principles: Warum wir eigene KI-Prinzipien entwickeln
Team statworx
6.12.2024
Mehr erfahren
  • Recap
  • statworx
5 Highlights vom Digital Festival Zürich 2021
Team statworx
6.12.2024
Mehr erfahren
  • Recap
  • statworx
Unfold 2022 in Bern – by Cleverclip
Team statworx
6.12.2024
Mehr erfahren
  • Data Science
  • Human-centered AI
  • Machine Learning
  • Strategy
Warum Data Science und KI-Initiativen scheitern – eine Reflektion zu nicht-technischen Faktoren
Team statworx
6.12.2024
Mehr erfahren
  • Machine Learning
  • Python
  • Tutorial
Wie man eine Machine Learning API mit Python und Flask erstellt
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Human-centered AI
  • Machine Learning
Vorurteile in KI abbauen
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Cloud Technology
  • Data Science
  • Sustainable AI
Wie du als Data Scientist deinen KI CO₂ Fußabdruck verringerst
Team statworx
6.12.2024
Mehr erfahren
  • Coding
  • Data Engineering
Automatisierte Erstellung von Docker Containern
Stephan Emmer
6.12.2024
Mehr erfahren
  • Coding
  • Data Visualization
  • R
Anpassung der Zeit- und Datumsskalen in ggplot2
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Machine Learning
5 Typen von Machine Learning Algorithmen (Mit Anwendungsfällen)
Team statworx
6.12.2024
Mehr erfahren
  • Coding
  • Machine Learning
  • Python
Data Science in Python – Der Einstieg in Machine Learning mit Scikit-Learn
Team statworx
6.12.2024
Mehr erfahren
  • Recap
  • statworx
2022 und die Reise zu statworx next
Sebastian Heinz
6.12.2024
Mehr erfahren
  • Recap
  • statworx
Als Data Science Praktikant bei statworx
Team statworx
6.12.2024
Mehr erfahren
  • Coding
  • Data Science
  • Python
Wie man mit Call Graph automatisch Projektgrafiken erstellt
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Human-centered AI
  • Machine Learning
  • statworx
Kolumne: Mensch und Maschine Seite an Seite
Sebastian Heinz
6.12.2024
Mehr erfahren
  • Data Engineering
  • Data Science
  • Machine Learning
Machine Learning Modelle bereitstellen und skalieren mit Kubernetes
Team statworx
6.12.2024
Mehr erfahren
  • Coding
  • Python
  • Tutorial
statworx Cheatsheets – Python Basics Cheatsheet für Data Science
Team statworx
6.12.2024
Mehr erfahren
  • Cloud Technology
  • Data Engineering
  • Machine Learning

3 Szenarien zum Deployment von Machine Learning Workflows mittels MLflow
Team statworx
6.12.2024
Mehr erfahren
  • Data Science
  • statworx
  • Strategy
STATWORX meets DHBW – Data Science Real-World Use Cases
Team statworx
6.12.2024
Mehr erfahren
  • Coding
  • Deep Learning
Car Model Classification I: Transfer Learning mit ResNet
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning
Car Model Classification IV: Integration von Deep Learning Modellen mit Dash
Dominique Lade
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning

Car Model Classification III: Erklärbarkeit von Deep Learning Modellen mit Grad-CAM
Team statworx
6.12.2024
Mehr erfahren
  • AI Act
Potenzial noch nicht ausgeschöpft – Ein Kommentar zur vorgeschlagenen KI-Regulierung der EU
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • statworx
Creaition – Revolutionierung des Designprozesses mit Machine Learning
Team statworx
6.12.2024
Mehr erfahren
  • Data Science
  • Deep Learning
Die 5 wichtigsten Use Cases für Computer Vision
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Data Science
  • Machine Learning
Generative Adversarial Networks: Wie mit Neuronalen Netzen Daten generiert werden können
Team statworx
6.12.2024
Mehr erfahren
  • Data Engineering
5 Technologien, die jeder Data Engineer kennen sollte
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
  • Machine Learning
5 praxisnahe Beispiele für NLP Use Cases
Team statworx
6.12.2024
Mehr erfahren
  • Coding
  • Data Science
  • Deep Learning
Finetuning von Tesseract-OCR für deutsche Rechnungen
Team statworx
6.12.2024
Mehr erfahren
  • Data Science
  • Deep Learning
Neue Trends im Natural Language Processing – Wie NLP massentauglich wird
Dominique Lade
6.12.2024
Mehr erfahren
  • Data Engineering
  • Data Science
  • Machine Learning
Machine Learning Modelle mit Hilfe von Docker Containern bereitstellen
Thomas Alcock
6.12.2024
Mehr erfahren
  • Frontend
  • Python
  • Tutorial
Wie Du ein Dashboard In Python baust – Plotly Dash Step-by-Step Tutorial
Alexander Blaufuss
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Machine Learning
Whitepaper: Ein Reifegradmodell für Künstliche Intelligenz
Team statworx
6.12.2024
Mehr erfahren
  • Data Engineering
  • R
  • Tutorial
Wie Du ShinyApps in Docker-Images einbauen kannst
Team statworx
6.12.2024
Mehr erfahren
  • Recap
  • statworx
STATWORX 2.0 – Das neue Headquarter in Frankfurt ist eröffnet
Julius Heinz
6.12.2024
Mehr erfahren
  • Coding
  • Python
Web Scraping 101 in Python mit Requests & BeautifulSoup
Team statworx
6.12.2024
Mehr erfahren
  • Artificial Intelligence
  • Deep Learning
Deep Learning – Überblick und Einstieg
Team statworx
6.12.2024
Mehr erfahren
  • Data Science
  • R
  • Statistics & Methods
Wie man eine Kreuzvalidierung zur Evaluation der Modellperformance von Grund auf selbst erstellt
Team statworx
6.12.2024
Mehr erfahren
  • Machine Learning
  • R
  • Statistics & Methods
Was dem MAPE fälschlicherweise vorgeworfen wird, seine WAHREN Schwächen und BESSERE Alternativen!
Team statworx
6.12.2024
Mehr erfahren
  • Data Visualization
  • R
Interaktive Netzwerkvisualisierung mit R
Team statworx
6.12.2024
Mehr erfahren
  • Data Science
  • Tutorial
Eine Einführung in Dataiku DSS
Team statworx
6.12.2024
Mehr erfahren
  • Coding
  • Data Visualization
  • Python
Das häufigste Problem mit Plotly Histograms und wie man es löst
Team statworx
6.12.2024
Mehr erfahren
  • Coding
  • Data Engineering
  • R
Wie Du ein R-Skript in Docker ausführst
Team statworx
6.12.2024
Mehr erfahren
  • Data Science
  • Data Visualization
  • Python
Data Science in Python – Matplotlib – Teil 4
Team statworx
6.12.2024
Mehr erfahren
  • Coding
  • Data Science
  • Python
Data Science in Python – Pandas – Teil 3
Team statworx
6.12.2024
Mehr erfahren
This is some text inside of a div block.
This is some text inside of a div block.