Neuronale Netze für TensorFlow-Lite auf 8-Bit-Integer umrechnen

Neuronale Netze rechnen mit 32 Bit langen Zahlen. Rechnen sie stattdessen mit 8-Bit-Zahlen, spart das drei Viertel des Speicherplatzes. So gehts.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
Neuronale Netze für TensorFlow-Lite auf 8-Bit-Integer umrechnen

(Bild: Albert Hulm)

Lesezeit: 14 Min.
Inhaltsverzeichnis

Neuronale Netze rechnen üblicherweise in Gleitkommazahlen mit 32 Bit. Die Gewichte der Synapsen, mit denen das neuronale Netz Schicht für Schicht seine Eingabedaten multipliziert, nehmen dabei oft sehr kleine positive und negative Werte an, die eine Gleitkommazahl dank ihres Exponenten mit hoher Genauigkeit kodiert.

Zu Beginn des Trainings initialisieren viele KI-Forscher ihre Netze bewusst mit Zufallszahlen nahe 0. Der Trainingsalgorithmus passt dann diese Zahlen so an, dass die Ausgaben des Netzes besser zu den Trainingsdaten passen, geht dabei aber in sehr kleinen Schritten vor. Sollte ein solcher Schritt kleiner ausfallen, als die Gleitkommazahl für dieses Gewicht kodieren kann, lernt das Netz an dieser Stelle nichts.

Mit diesem Wissen überrascht es, dass KI-Beschleuniger-Chips wie der Myriad in Intels Neural Compute Stick oder Googles Coral gar nicht mit Gleitkommazahlen rechnen können. Sie bringen nur Rechenwerke für Integer mit lediglich 8 Bit mit. Integer-Rechenwerke brauchen wesentlich weniger Transistoren, sodass die Hersteller mehr davon auf gleicher Fläche unterbringen. Das spart nicht nur bei den Produktionskosten, sondern vor allem beim Stromverbrauch: Die kleinen KI-Chips begnügen sich mit weniger als zwei Watt, sollen aber so viele Daten wie eine Grafikkarte verarbeiten.