Dieses Repository dient als Vorlage für Machine Learning Projekte. Es enthält Anleitungen zum Einrichten des Projekts, zum Trainieren und Vorhersagen mit einem Modell, zum Hochladen auf GitHub und zum Bereitstellen auf Heroku.
Windows-Benutzer können dem offiziellen Microsoft-Tutorial folgen, um Python, Git und VSCode zu installieren:
- Englisch: https://docs.microsoft.com/en-us/windows/python/beginners
- Deutsch: https://docs.microsoft.com/de-de/windows/python/beginners
Dieses Repository ist für Visual Studio Code optimiert. Das .vscode-Verzeichnis enthält Konfigurationen für nützliche Erweiterungen wie GitLens und Python.
-
Repository erstellen: Erstellen Sie ein GitHub-Repository. Verwenden Sie als Grundlage das folgende Template-Repository: https://github.com/fullstack-ml-academy/python-template.
-
Virtuelle Umgebung einrichten: Öffnen Sie das integrierte Terminal und führen Sie das Setup-Skript für Ihr Betriebssystem aus. Dadurch wird eine virtuelle Python-Umgebung mit allen in
requirements.txtangegebenen Paketen installiert.- Linux/Mac:
./setup.sh source .venv/bin/activate - Windows:
.\setup.ps1 .\.venv\Scripts\Activate.ps1
- Fehlerbehebung: Wenn Ihr System das Ausführen von Powershell-Skripten nicht zulässt, versuchen Sie, die Ausführungsrichtlinie festzulegen:
Set-ExecutionPolicy RemoteSigned.
- Fehlerbehebung: Wenn Ihr System das Ausführen von Powershell-Skripten nicht zulässt, versuchen Sie, die Ausführungsrichtlinie festzulegen:
- Linux/Mac:
-
Daten herunterladen: Laden Sie die Trainingsdaten von https://gist.github.com/OFranke/9359880e40ba14afe795c1e1549839be herunter und legen Sie diese im Repository im Ordner
/dataab.
- Modell trainieren: Erstellen Sie ein Skript
train.py. Trainieren Sie das Modell (z.B. Sklearn Decision Tree) und speichern Sie es mit der "pickle"-Bibliothek unter/data/models. - Modellvorhersage: Erstellen Sie ein Skript
predict.py. Lesen Sie das zuvor erstellte Modell wieder ein und generieren Sie eine Vorhersage, die im Terminal ausgegeben wird.
Erstellen Sie eine Flask-API, um das Modell über HTTP-Anfragen verfügbar zu machen.
- Abhängigkeiten installieren: Installieren Sie
flaskundflask-cors. - API-Struktur: Erstellen Sie eine
wsgi.py-Datei und einesrc/api.py-Datei. - Endpunkte implementieren:
GET /: Gibt{"hello": "world"}als JSON zurück.GET /hello_world: Gibt<p>Hello, World!</p>als HTML zurück.GET /training_data: Gibt die Trainingsdaten als JSON zurück.GET /predict: Nimmt die Parameterzylinder,ps,gewicht,beschleunigungundbaujahrentgegen und gibt eine Vorhersage als JSON zurück (z.B.{"result": 18.1}).
Verwenden Sie den JIRA + GitHub Workflow, um Ihre Änderungen zu verwalten.
- Git-Repository initialisieren:
git init
- Dateien hinzufügen und committen:
git add . git commit -m "Erster Commit"
- Remote-Repository hinzufügen und pushen:
git remote add origin <REMOTE_REPOSITORY_URL> git push -u origin master
- Heroku-Konto erstellen: Legen Sie einen neuen Heroku-Account an.
- Heroku-App erstellen: Erstellen Sie eine neue Heroku-App.
- GitHub Action für automatisches Deployment einrichten:
- Erstellen Sie eine neue GitHub Action, die bei Änderungen im
main-Branch automatisch auf Heroku deployed wird. - Setzen Sie die folgenden Environment Variables in Ihrem GitHub Repository unter
Settings > Secrets:HEROKU_API_KEY,HEROKU_APP_NAME,HEROKU_EMAIL. - Verwenden Sie den Code für die Action von: https://gist.github.com/OFranke/e39c7629bfaa4538fbc616ba60be2d57.
- Erstellen Sie eine neue GitHub Action, die bei Änderungen im
- Procfile erstellen: Erstellen Sie eine
Procfile-Datei im Stammverzeichnis Ihres Projekts mit dem folgenden Inhalt, um den API-Server mitgunicornzu starten:web: gunicorn wsgi:app - Runtime definieren: Erstellen Sie eine
runtime.txt-Datei im Stammverzeichnis, um die Python-Version für Heroku festzulegen:python-3.9.0