Projekte

Einrichten von WordPress mit Docker auf dem Raspberry Pi

Dieser Blog läuft seit dem 09. April 2019 auf einem Raspberry Pi und ist seitdem erstaunlicherweise sehr stabil. WordPress nutzt auch nicht allzu viele Ressourcen, insbesondere für meinen Anwendungsfall, da ich nicht hunderte von Zugriffen pro Tag erwarte, sodass freie Kapazitäten für andere Anwendungen möglich sind.

Das jetzige Setup beinhaltet eine out-of-the-box WordPress Installation mit docker-compose und einem Backup Skript welches die Daten in die private Dropbox cloud laden. In dieser Blog Serie würde ich gerne einen kleinen EInblick in meine Installation geben und euch zeigen, wie ihr euch dies selbst einrichten könnt.

Objekterkennung – Ein Überblick zur Mean Average Precision (mAP)

Die Welt der Objekterkennung ist ein faszinierendes Gebiet in welches ich innerhalb einer Projektarbeit einen kurzen Einblick erhaschen konnte. Eines der Kernmetriken, um die Güte eines Objekterkennungsmodelles zu beschreiben, ist die mean Average Precision (mAP). Ich empfand es als sehr hilfreich, dass viele hilfreiche Lernresourcen in Form von Blog Beiträgen im Internet bereits vorhanden sind. Die Grundkonzepte wurden einfach und verständlich erklärt, allerdings ist die Berechnung der mAP vereinzelt sehr unterschiedlich ekrlärt worden. In diesem Beitrag möchte ich gerne meine Befunde teilen und etwas mehr Klarheit schaffen.

Bisherigen Erfahrungen und Projekte

Mit Ausnahme von einigen Pausen in denen ich im Auslandssemester oder im Praktikum in Hamburg war, bin ich nun seit 2016 als Werkstudent in einer Business Intelligence Abteilung angestellt. Einige meiner hier erworbenen praktischen Erfahrungen beinhalten:

  • Arbeit an einem bestehenden Datawarehouses (Analyse/Betrieb & Projekt/Weiterentwicklung) im Kontext der Logistik
  • Hauptentwickler und Architekt bei der Erstellung eines neuen Datawarehouse-Frameworks auf Basis von Open Source Tools
  • Aktuell: Einarbeitung in Machine Learning (Anomalie Erkennung in Streamingdaten)

Im Rahmen meines Studiums konnte ich auch an einigen interessanten Projekten mitwirken:

  • Objekterkennung mit der Tensorflow API in der Microsoft Azure Umgebung
  • Erweiterung einer Datastreaming Pipeline in Flink zur Echtzeitdatenverarbeitung
  • Literaturrecherche zum Thema “Einsatzmöglichkeiten maschinellen Lernens im industriellen Störungsmanagement” (insbesondere Produktionsmaschinen)

Einige relevante buzzwords sind unter anderem: Data Vault Modeling 2.0, Airflow, Superset, Postgres, Python, pytorch, SQL, OCI, Docker, Kubernetes, Terraform, Shell Scripting, git, MSSQL, SSIS, Talend

Kürzlich veröffentliche Beiträge

Data Engineering & Tools |  How to

Anbinden von Block volume an eine VM Instanz in der OCI

Im Rahmen meines Forschungsseminars und zu Testzwecken, wollte ich die auf der Oracle Cloud Infrastructure (OCI) kostenlos zur Verfügung stehenden Produkte nutzen, um einige Tests durchzuführen. Hierbei ergaben sich allerdings einige, eigentlich triviale Probleme, bei der Anbindung eines zusätzlichen Block Volumes an eine bestehende VM Instanz. TLDR:Nachdem der Block Volume…

Weiterlesen
Data Engineering & Tools |  Learnings

NULL Werte und ihre Tücken

Merke: Am besten keine NULL Werte in kritischen Spalten zulassen, die für Vergleichsoperationen genutzt werden Wenn NULL Werte mit anderen Zeichenketten verglichen werden, so ist das Ergebnis stets falsch. Dies kann zu hoher Frustration und Verwirrung führen, da es nicht das zu erwartende Verhalten wiederspiegelt. SELECT CASE WHEN NULL =…

Weiterlesen
1 2
Machine Learning Engineering |  Troubleshooting

Pytorch – Skalartyp Float erwartet, aber Double gefunden

TLDR: Der Standard-Datentyp eines Numpy-Arrays ist double/float64. Wenn ein Tensor aus diesem Array mit torch.as_tensor() erstellt wird, nimmt er diesen Datentyp an. Der Standarddatentyp eines neuronalen Netzwerkmodells ist allerdings float32. Die Verwendung des float64 Tensors als Eingabe für das NN-Modell ist somit nicht kompatibel und führt zu der entsprechenden Fehlermeldung…

Weiterlesen
Machine Learning Engineering |  Troubleshooting

Fehler beim Training eines Languagemodels – RuntimeError the expanded size of the tensor (100) must match the existing size (64) at non singleton dimension 1.

Kontext Ich habe ein neues Sprachmodell von Grund auf mit dem Huggingface-Frameworkes und einem vorkonfiguriertem Roberta-Modells auf einem eigenen Datensatz trainiert. Nun wollt ich einen neuen Datensatz mit Hilfe des trainierten Modells vektorisieren. Beobachtung Es trat ein Fehler auf: RuntimeError the expanded size of the tensor (100) must match the…

Weiterlesen
Machine Learning Engineering |  Troubleshooting

SentenceTransformer – float object is not subscriptable

TLDR: np.nan Objekte sind fom Typ float Beobachtung Um numerische Repräsentationen für Dokumente (sogenannte Embeddings) zu erstellen habe ich mich dem SentenceTransformer (v2.2.0) bedient, allerdings wurde in vereinzelten Fällen der Fehler “TypeError: ‘float’ object is not subscriptable” geworfen. Der traceback bezieht sich auf die tokenizer Funktion, die wir uns hier…

Weiterlesen
Learnings |  Machine Learning Engineering

Visuelle Erklärung der Multi-Head Attention

Warum ändert sich bei einer Änderung der Anzahl der Heads eines Transformermodell nicht dessen Anzahl an Parametern? – Das war die Frage, die ich mir gestellt habe. Nachdem ich die entsprechende Matrizenmultiplikation nachvollzogen und zu einem entsprechendem Ergebnis gekommen bin, möchte ich dieses Wissen weitergeben und versuchen, den Multi Head…

Weiterlesen
How to |  Machine Learning Engineering

Evaluierung des Trainers der Transformer Bibliothek

Innerhalb des Transformer Frameworkes kann ein Trainer Objekt lästigen Code für die Konfiguration der Traningspipeline einsparen. Mit den TrainingArguments können zusätzliche Parameter eingestellt werden. Eine der wichtigen Argumente ist die evaluation_strategy, welche als Standartwert “no” besitzt. Dies besagt, dass keine Evaluation während des Trainings stattefindet. Diese kann entsprechend umgestelllt werden…

Weiterlesen
Andere |  Troubleshooting

ChatGPT als Debug Assistant

Ich habe versucht, einen Flask Restful Endpoint mit dem webargs-Framework zu implementieren, welches ich bereits 2020 verwendet habe. Obwohl ich den alten Code kopiert und einige winzige Anpassungen am Request-Aufruf vorgenommen habe, konnte ich ihn 2023 nicht mehr zum Laufen bringen. Indem ich ChatGPT um Hilfe bat, erlangte ich ein…

Weiterlesen
Andere |  Learnings

WSL 2 auf Windows 10 – Aktivieren Sie das Windows-Feature “VM-Plattform”, und stellen Sie sicher, dass die Virtualisierung im BIOS aktiviert ist.

Vor einiger Zeit habe ich WSL 2 auf Windows 10 korrekt installiert, ausgeführt und auch damit gearbeitet. Allerdings habe ich danach mit dem Android-Emulator BlueStack herumgespielt, der Hyper-V verwendet. Nachdem ich alle Einstellungen vorgenommen hatte, um BlueStack zum Laufen zu bringen, stellte ich fest, dass mein WSL 2 nicht mehr…

Weiterlesen
Andere |  How to

#3 WordPress backup und was zu beachten ist

Es gibt verschiedene Möglichkeiten ein Backup von WordPress zu erstellen, je nach dem wie viel Vorwissen und Nutzerrechte vorhanden sind. In diesem Post möchte ich einige Möglichkeiten durchgehen. Dazu müssen wir wissen, was wir überhaupt sichern müssen und wie wir dies tun können. Aktuell habe ich ein automatisiertes Backup Skript…

Weiterlesen
Andere |  How to

#2 Allgemeine Probleme und Migration

Das Repository sollte direkt out-of-the-box eine lauffähige WordPress Instanz erstellen. In diesem Post möchte ich jedoch über allgemeine Fehlerbehandlung und Probleme berichten, die mir bei der Vorbereitung der Images unter gekommen sind. Ich kann keine Bilder hochladen oder plugins runterladen. Caddy funktioniert nicht mehr, startet jedes mal neu. Migration Wieso…

Weiterlesen
Andere |  Technologie

#0 Einführung in Docker und WordPress

Dieser Post soll eine kurze Einführung zu Docker und WordPress sowie die darunterliegenden Services geben und veranschaulichen wie diese miteinander interagieren. 1. Was ist Docker? 2. Was ist WordPress ? 3. Was steckt hinter WordPress ? 3.1. Caddy als Webserver 3.2. MySQL und MariaDB als Datenbank 3.3. PHP-FPM 4. Wichtige…

Weiterlesen
Andere |  How to

Einrichtung von WordPress mit Docker auf dem RaspberryPi

Wie WordPress mit Hilfe von Docker auf dem Raspberry Pi zum laufen gebracht wird. Wieso sollten wir das? Der größte Vorteil ist wohl, dass wir damit herumspielen können und uns austoben können wie wir wollen. Ein sauberes Löschen wird ermöglicht, indem wir dann die Container entfernen. Der Raspberry Pi kann…

Weiterlesen
hungsblog | Nguyen Hung Manh | Dresden