[go: up one dir, main page]

DE102018203709A1 - Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes - Google Patents

Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes Download PDF

Info

Publication number
DE102018203709A1
DE102018203709A1 DE102018203709.4A DE102018203709A DE102018203709A1 DE 102018203709 A1 DE102018203709 A1 DE 102018203709A1 DE 102018203709 A DE102018203709 A DE 102018203709A DE 102018203709 A1 DE102018203709 A1 DE 102018203709A1
Authority
DE
Germany
Prior art keywords
neural network
calculation
intermediate results
compression
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018203709.4A
Other languages
English (en)
Inventor
Andre GUNTORO
Armin Runge
Juergen Schirmer
Jaroslaw Topp
Christoph Schorn
Sebastian Vogel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102018203709.4A priority Critical patent/DE102018203709A1/de
Priority to CN201910179660.3A priority patent/CN110263910B/zh
Priority to US16/298,335 priority patent/US11715019B2/en
Publication of DE102018203709A1 publication Critical patent/DE102018203709A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Berechnungssystems (1) mit einem neuronalen Netz, insbesondere einem gefalteten (convolutional) neuronalen Netz, wobei das Berechnungssystem eine Recheneinrichtung (2) für die sequentielle Berechnung des neuronalen Netzes und einen dazu externen Speicher (4) zum Zwischenspeichern von Zwischenergebnissen der Berechnungen in der Recheneinrichtung (2) aufweist, mit folgenden Schritten:- schrittweises Berechnen (S2, S3) von Datenabschnitten, die jeweils eine Gruppe von Zwischenergebnissen darstellen, mithilfe eines neuronalen Netzes;- verlustbehaftetes Komprimieren (S5, S6, S7, S8) einer oder mehrerer der Datenabschnitte, um komprimierte Zwischenergebnisse zu erhalten;- Übertragen (S9) der komprimierten Zwischenergebnisse an den externen Speicher (4).

Description

  • Technisches Gebiet
  • Die Erfindung betrifft neuronale Netze, und insbesondere Maßnahmen zum Zwischenspeichern von Zwischenberechnungsergebnissen einzelner Neuronenschichten.
  • Technischer Hintergrund
  • Insbesondere für die Bildverarbeitung verwendete neuronale Netze müssen große Datenmengen verarbeiten. Für eine Berechnung eines neuronalen Netzes steht dafür oftmals eine Berechnungshardware zur Verfügung, die die Berechnung nur eines Teils des neuronalen Netzes ausführt, wobei durch einen Algorithmus die mehrfache Verwendung der Berechnungshardware vorgesehen wird. Die während der Berechnung des Teils des neuronalen Netzes erhaltene Berechnungsergebnisse werden dazu zwischengespeichert und bei Bedarf wieder aufgerufen.
  • So können sich beispielsweise für ein Bild mit einer Eingangsauflösung von 2048 x 1024 Pixel Berechnungsergebnisse einer einzelnen Neuronenschicht ergeben, die eine Größe von ca. 134 MB bei (Pixel-)Wortgrößen von 8 Bit aufweisen. Diese Datenmenge kann während der Berechnung des neuronalen Netzes nicht mehr in einem Cache-Speicher zwischengespeichert werden, da die Größe des Cache-Speichers in der Regel begrenzt ist.
  • Daher ist es oftmals notwendig, die Zwischenergebnisse des neuronalen Netzes in einen externen Speicher außerhalb der Berechnungshardware für das neuronale Netz zu transferieren und bei Bedarf von dort zurückzulesen. Jedoch benötigt der Zugriff auf den externen Speicher verglichen mit dem Zugriff auf (Berechnungshardware-)interne Register oder Zwischenspeicher (Caches) mehr Energie und eine höhere Zugriffszeit. Somit ist eine Berechnung in einem neuronalen Netz für hohe Datenmengen nicht durch die Rechenleistung der Berechnungshardware, sondern durch die Bandbreite der Datenübertragung zwischen der Berechnungshardware und dem externen Speicher für die Speicherung von Zwischenergebnissen limitiert.
  • Aus Y. Wang et al., „CNNpack: Packing Convolutional Neural Networks in the Frequency Domain,“ Advances in Neural Information Processing Systems 29, Barcelona, Spain, 2016 and W. Chen et al., „Compressing Convolutional Neural Networks in Frequency Domain,“ Proc. ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD), San Francisco, USA, 2016 ist bekannt, die Größe von Netzparametern, d. h. Gewichtungen und Biaswerten zu reduzieren, indem die Netzparameter in eine Frequenzdomäne überführt werden und die Parametergröße dadurch reduziert wird, dass im Frequenzraum per Clustering-Verfahren ähnliche Werte auf einen gemeinsamen Wert abgebildet werden können. Dadurch wird ein Weight-Sharing erreicht.
  • Auch aus der Druckschrift J. H. Ko et al., „Adaptive Weight Compression for Memory-Efficient Neural Networks," in Design, Automation Test in Europe Conference Exhibition (DATE), Lausanne, Switzerland, 2017 ist bekannt, die Netzparameter für die Neuronen des neuronalen Netzes zu komprimieren, wobei das Kompressionsverfahren die Kompressionsrate durch einen Quality-Faktor festlegt, der von einem Trainingsschritt abhängt. Der Kompressionsalgorithmus ist hierbei ähnlich zu einer jpeg-Bildkompression.
  • Die beiden letztgenannten Verfahren betreffen jedoch die Kompression vorab bekannter Netzparameter, die in der Regel nur geladen, aber nicht zwischengespeichert werden müssen.
  • Offenbarung der Erfindung
  • Erfindungsgemäß sind ein Verfahren zum Betreiben eines neuronalen Netzes, insbesondere eines gefalteten (convolutional) neuronalen Netzes gemäß Anspruch 1, sowie ein neuronales Netz und ein Berechnungssystem gemäß den nebengeordneten Ansprüchen vorgesehen.
  • Weitere Ausgestaltungen sind in den abhängigen Ansprüchen angegeben.
  • Gemäß einem ersten Aspekt ist ein Verfahren zum Betreiben eines Berechnungssystems mit einem neuronalen Netz, insbesondere einem gefalteten (convolutional) neuronalen Netz, vorgesehen, wobei das Berechnungssystem eine Recheneinrichtung für die sequentielle Berechnung des neuronalen Netzes und einen dazu externen Speicher zum Zwischenspeichern von Zwischenergebnissen der Berechnungen in der Recheneinrichtung aufweist, mit folgenden Schritten:
    • - schrittweises Berechnen von Datenabschnitten, die jeweils eine Gruppe von Zwischenergebnissen darstellen, mithilfe eines neuronalen Netzes;
    • - verlustbehaftetes Komprimieren einer oder mehrerer der Datenabschnitte, um komprimierte Zwischenergebnisse zu erhalten; und
    • - Übertragen der komprimierten Zwischenergebnisse an den externen Speicher.
  • Das obige Verfahren sieht vor, Ergebnisse von Berechnungen eines neuronalen Netzes, die als Zwischenergebnisse durch das bzw. ein weiteres neuronales Netz weiterverarbeitet werden sollen, extern von der Recheneinrichtung (Berechnungshardware) zu speichern, d. h. nicht in Registern oder sonstigen Zwischenspeichern, die Bestandteil der Recheneinrichtung (Berechnungshardware) sind. Diese Zwischenergebnisse sollen in einem externen Speicher gespeichert werden und werden dazu vor der Übertragung in den externen Speicher komprimiert, um die zwischen der Recheneinrichtung und dem externen Speicher zu übertragende Datenmenge zu reduzieren. Dies wird durch Kompression und Dekompression in der Recheneinrichtung oder ggfs. in einer Stufe zwischen der Recheneinrichtung und dem externen Speicher erreicht.
  • Eine Kompression von Daten nutzt in der Regel Wiederholungen von Datenelementen, um die Größe der Daten zu reduzieren. Beispielsweise nutzt eine Run-Length-Kompression die Möglichkeit, eine Folge von gleichen Werten (z.B. in neuronalen Netzen häufig auftretenden Nullen) durch die Angabe ihrer Länge zu codieren. Erreicht man durch eine Manipulation der zu komprimierenden Daten, dass diese einen oder mehrere möglichst große Bereiche von Abfolgen von identischen Datenelementen bzw. Nullen aufweisen, ist eine derartige Run-Length-Kompression besonders effektiv.
  • Es kann vorgesehen sein, dass zum verlustbehafteten Komprimieren die Datenabschnitte jeweils in einen Frequenzbereich transformiert werden und die transformierten Datenabschnitte im Frequenzbereich elementweise gefiltert werden, um modifizierte Datenabschnitte zu erhalten.
  • Das elementweise Filtern kann eine Multiplikation von einem Teil der Elemente der transformierten Datenabschnitte mit 0 umfassen, um modifizierte Datenabschnitte mit einer Anzahl von Elementen von „0“ zu erhalten, die größer ist als die Anzahl von Elementen von „0“ in den ursprünglichen Datenabschnitten einer Eingangsmerkmalskarte.
  • „Elementweises filtern“ bezeichnet hierin eine Operation, bei der Datenelemente der transformierten Datenabschnitte auf Null gesetzt werden. Mathematisch entspricht dieses „zu-Null-Setzen“ einer elementweisen Multiplikation mit einer Kompressionsmatrix A , deren Einträge akl Null sein können. Im Folgenden ist mit „Filtern“ ein solches zu Null-Setzen respektive elementweise multiplizieren mit A = ( a 11 a 1 n a n 1 a n n )
    Figure DE102018203709A1_0001
    zu verstehen.
  • Insbesondere können ein oder mehrere modifizierte Datenabschnitte, insbesondere gemeinsam, mit einem vorgegebenen Codierungsverfahren codiert werden, um die komprimierten Zwischenergebnisse zu erhalten, insbesondere mithilfe einer Run-Length-Codierung oder Entropiecodierung.
  • Gemäß dem obigen Verfahren werden die zu komprimierenden Datenabschnitte so manipuliert, dass diese durch eine Datenfolge repräsentiert werden, die einen oder mehrere möglichst große Bereiche von Abfolgen von Nullen enthalten. Diese Manipulation kann verlustbehaftet sein, so dass das verwendete Kompressionsverfahren insgesamt verlustbehaftet ist. Die Anwendung einer verlustbehafteten Kompression für die Speicherung von Zwischenergebnissen einer Berechnung eines neuronalen Netzes ist grundsätzlich zulässig, da neuronale Netze im Vergleich zu anderen Algorithmen besonders robust gegen Rauschen (Quantisierungsrauschen, Single-Event-Faults usw.) sind.
  • Vor der Kompression der Datenabschnitte werden diese so modifiziert, dass diese einen oder mehrere möglichst große Bereiche von Abfolgen von identischen Datenelementen bzw. Nullen aufweisen. Dazu kann beispielsweise eine Frequenztransformation vorgesehen sein, die eine Übertragung der zu komprimierenden Zwischenergebnisse als Eingangsdaten in einen Frequenzbereich beinhaltet. Die Frequenzbereichsdaten, d. h. die in den Frequenzbereich übertragenen Datenabschnitte, können in einfacher Weise nach Frequenzanteilen gefiltert werden, so dass sich nach dieser Filterung der Frequenzbereichsdaten größere Datenbereiche ergeben, die lediglich Nullen aufweisen. Diese können in geeigneter Weise z. B. mit Hilfe einer Run-Length-Codierung oder einer Entropie-Codierung codiert bzw. dadurch komprimiert werden.
  • Gemäß einer Ausführungsform können die transformierten Datenabschnitte zum elementweisen Filtern mit einer Kompressionsmatrix beaufschlagt werden, die insbesondere für jede Neuronen- bzw. Berechnungsschicht der sequentiellen Berechnung des neuronalen Netzwerks separat vorgegeben wird.
  • Insbesondere kann die Kompressionsmatrix so auf das Codierungsverfahren der transformierten Datenabschnitte abgestimmt sein, dass eine bessere Kompression erreicht wird als bei einer direkten Anwendung des Codierungsverfahrens auf die nicht-transformierten Datenabschnitte.
  • Die Filterung im Frequenzbereich kann beispielsweise mithilfe der Kompressionsmatrix durchgeführt werden, die es ermöglicht, die in den Frequenzbereich transformierten Frequenzbereichsdaten elementweise zu filtern, wobei ein Element der in den Frequenzbereich transformierten Datenabschnitte einem Frequenzanteil mit einer Frequenz entspricht.
  • Insbesondere kann die Kompressionsmatrix so vorgegeben werden, dass höherfrequente Anteile der transformierten Datenabschnitte gefiltert werden.
  • Alternativ kann die Kompressionsmatrix vorgegeben werden, indem während eines Trainings des neuronalen Netzes Matrixelemente akl der Kompressionsmatrix A für jede Berechnungsschicht gemeinsam mit Neuronenparametern von Neuronen des neuronalen Netzes trainiert werden, insbesondere mithilfe eines Backpropagation-Verfahrens.
  • Die Kompressionsmatrix kann in geeigneter Weise modifiziert werden, um so die Reduktion der Frequenzbereichsdaten zu adaptieren. Die Kompressionsmatrix kann dazu während des Trainings des neuronalen Netzes eingestellt werden oder nachträglich einem bereits trainierten neuronalen Netz hinzugefügt werden. Beim Hinzufügen zu einem bereits trainierten Netz kann die Lernrate der Kompressionsmatrix und der Netzparameter unterschiedlich sein oder die Netzparameter während des Lernens der Kompressionsmatrix fixiert werden. Bei einer schichtweisen Berechnung des neuronalen Netzes kann für jede der Neuronenschichten eine eigene Kompressionsmatrix bestimmt werden. Die Kompressionsmatrizen bestimmen weiterhin, wie stark Berechnungsergebnisse einzelner Neuronenschichten komprimiert werden können.
  • Die Adaption der Kompressionsmatrix während des Trainingsverfahrens des neuronalen Netzes ermöglicht es, die durch die Kompression in das neuronale Netz eingebrachten Fehler zu minimieren bzw. unter einen vorgegebenen Fehlerwert zu begrenzen. Das obige Verfahren lässt sich besonders gut auf konvolutionelle (gefaltete) neuronale Netze (convolutional neural networks; Faltungsnetzwerke; CNN) anwenden, welche durch ein herkömmliches, nichtspezialisiertes Training trainiert wurden. Die Faltungen werden während der Ausführung eines konvolutionellen neuronalen Netzes im Ortsbereich durchgeführt. Für die ggf. verlustbehaftete Kompression im Frequenzbereich werden daher die zu komprimierenden Daten in Kacheln einer kleineren und definierten Größe aufgeteilt.
  • Die Trennung der Berechnung durch das neuronale Netz und der Kompression der Berechnungsergebnisse ermöglicht, dass das erfindungsgemäße Kompressionsverfahren bei einer Entwicklung eines neuronalen Netzes nicht berücksichtigt werden muss, und es kann eine Kompressionseinheit auch separat zu der Recheneinrichtung vorgesehen werden. Zudem kann die Berechnungseinheit dynamisch ein- und ausgeschaltet werden, um eine Einstellmöglichkeit vorzusehen, die einen Trade-off zwischen Genauigkeit der Berechnung des neuronalen Netzes und der Kompressionsrate (d.h. der erforderlichen Speicherbandbreite und der Berechnungsdauer ermöglicht). Die vorgestellte verlustbehaftete Kompressionsmethode hat dabei den Vorteil, die Kompressionsrate einzustellen so dass man garantierte Aussagen über die resultierende, erforderliche Speicherbandbreite treffen kann. Dies ist insbesondere für den Einsatz in echtzeit-kritischen Systemen von Vorteil.
  • Weiterhin können für eine Berechnung mithilfe des neuronalen Netzes die komprimierten Zwischenergebnisse aus dem externen Speicher abgerufen werden, diese dekomprimiert werden und eine weitere Berechnung abhängig von den dekomprimierten Zwischenergebnissen durchgeführt werden.
  • Es kann vorgesehen sein, dass das neuronale Netz einem konvolutionellen neuronalen Netz mit mehreren Neuronenschichten entspricht, denen jeweils Neuronenparameter zugeordnet sind, wobei man ein Element einer Ausgangsmerkmalskarte jeweils durch Beaufschlagung eines Datenabschnitts einer oder mehrerer Eingangsmerkmalskarten mit den der Ausgangsmerkmalskarte zugeordneten Neuronenparameter erhalten kann.
  • Weiterhin können die komprimierten Zwischenergebnisse an den externen Speicher übertragen werden, wobei für eine weitere Berechnung mithilfe des neuronalen Netzes die komprimierten Zwischenergebnisse aus dem externen Speicher abgerufen werden und dekomprimiert werden, um dekomprimierte Datenabschnitte zu erhalten.
  • Es kann vorgesehen sein, dass nach dem Abrufen der komprimierten Zwischenergebnisse aus dem externen Speicher diese mit einem Decodierungsverfahren decodiert werden und anschließend rücktransformiert werden, um die dekomprimierten Zwischenergebnissen zu erhalten. Das Decodierverfahren ist dabei vorzugsweise komplementär zu dem Codierverfahren gewählt. Zudem entspricht die Rücktransformation einem zu der Transformation in den Frequenzbereich komplementären Prozess.
  • Gemäß einem weiteren Aspekt ist ein Berechnungssystem mit einem neuronalen Netz, insbesondere einem gefalteten (convolutional) neuronalen Netz vorgesehen, wobei das Berechnungssystem eine Recheneinrichtung für die sequentielle Berechnung des neuronalen Netzes und einen dazu externen Speicher zum Zwischenspeichern von Zwischenergebnissen der Berechnungen in der Recheneinrichtung aufweist, wobei die Recheneinrichtung ausgebildet ist, um:
    • - Datenabschnitte, die jeweils eine Gruppe von Zwischenergebnissen darstellen, mithilfe eines neuronalen Netzes schrittweise zu berechnen;
    • - einen oder mehrere der Datenabschnitte verlustbehaftet zu, um komprimierte Zwischenergebnisse zu erhalten;
    • - die komprimierten Zwischenergebnisse an den externen Speicher zu übertragen.
  • Weiterhin kann eine Dekompressionseinheit vorgesehen sein, die ausgebildet ist, um für eine Berechnung mithilfe des neuronalen Netzes die komprimierten Zwischenergebnisse aus dem externen Speicher abzurufen, diese zu dekomprimieren und eine weitere Berechnung abhängig von den dekomprimierten Zwischenergebnissen durchzuführen.
  • Figurenliste
  • Ausführungsformen werden nachfolgend anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:
    • 1 eine schematische Darstellung eines Berechnungssystems zur Berechnung eines neuronalen Netzes;
    • 2 ein Flussdiagramm zur Veranschaulichung eines Verfahrens zur Kompression von Zwischenergebnissen einer Berechnung in einem neuronalen Netz für die externe Speicherung;
    • 3a bis 3e eine Veranschaulichung des Kompressionsverfahrens anhand eines beispielhaften Datenabschnittes;
    • 4a bis 4e eine Eingangsmerkmalskarte eines konvolutionellen neuronalen Netzes, eine Eingangsmerkmalskarte in Datenkacheln aufgeteilt, eine in den Frequenzbereich transformierte Eingangsmerkmalskarte, eine in den Frequenzbereich transformierte mit einer Kompressionsmatrix beaufschlagte Eingangsmerkmalskarte, eine aus dem Frequenzbereich zurücktransformierte Merkmalskarte, die mit der Kompressionsmatrix beaufschlagt worden ist, und eine kontinuierlich dargestellte Eingangsmerkmalskarte; und
    • 5a bis 5f eine Veranschaulichung des Verfahrens, wenn die Unterteilung in Datenabschnitte entlang der Kanäle vorgenommen wird; und
    • 6 eine beispielhafte Darstellung der Entwicklung der Elemente der Kompressionsmatrizen für ein neuronales Netz mit 13 Neuronenschichten bei einem Training für 30 Trainingszyklen, wobei die Graustufen die Elementewerte angeben.
  • Beschreibung von Ausführungsformen
  • 1 zeigt eine schematische Darstellung eines Berechnungssystems 1 mit einer Recheneinrichtung 2. Die Recheneinrichtung 2 umfasst einen Prozessor und/oder eine sonstige Hardwareeinheit, die zur Berechnung eines neuronalen Netzes ausgebildet bzw. besonders geeignet sind. Häufig ist die Recheneinrichtung 2 so vorgesehen, dass Komponenten bzw. Hardwareeinheiten für einen Berechnungsdurchgang mehrfach verwendet werden. Insbesondere sind Hardwareeinheiten üblich, die eine einzelne Neuronenschicht berechnen oder einen oder mehrere Berechnungsschritte einer schrittweisen Berechnung z. B. eines konvolutionellen neuronalen Netzes vorsehen.
  • Bei der Berechnung komplexer neuronaler Netze werden die Berechnungen durch die Recheneinrichtung 2 nacheinander schrittweise durchgeführt, wobei sich jeweils Zwischenergebnisse ergeben, die nicht bei unmittelbar darauffolgenden Berechnungen z. B. erst in einer Berechnung einer weiteren Neuronenschicht weiterverwendet werden. Diese Zwischenergebnisse können so großen Datenmengen entsprechen, dass diese nicht ohne weiteres in der Recheneinrichtung 2 zwischengespeichert werden können.
  • Daher ist vorgesehen, Zwischenergebnisse von Berechnungen der Recheneinrichtung 2 in einen externen Speicher 4 zu transferieren und von dort wieder abzurufen, wenn diese für Folgeberechnungen benötigt werden.
  • Dazu ist eine Kompressionseinheit 3 vorgesehen, um die Zwischenergebnisse der Berechnungen des neuronalen Netzes zu komprimieren. Die komprimierten Berechnungsergebnisse werden anschließend an den externen Speicher 4 übertragen und dort gespeichert.
  • Zum Weiterverarbeiten der zuvor gespeicherten Zwischenergebnisse können diese aus dem externen Speicher 4 ausgelesen werden und mithilfe einer Dekompressionseinheit 5 dekomprimiert werden, um die dekomprimierten zwischengespeicherten Zwischenergebnisse für einen nächsten Berechnungsschritt durch das neuronale Netz zu nutzen.
  • Die Kompression bzw. Dekompression von Zwischenergebnissen bei der Berechnung von neuronalen Netzwerken ist insbesondere dann sinnvoll anwendbar, wenn die Eingangsdaten bzw. die Zwischenergebnisse nach einer Berechnung einer Neuronenschicht abschnittsweise mithilfe eines neuronalen Netzes weiter verarbeitet werden. Dies ist insbesondere bei konvolutionellen neuronalen Netzen der Fall. Z. B. können solche neuronalen Netze für die Perzeption von Bildern verwendet werden, wobei die Ausgabe einer Neuronenschicht mit der Größe fox × foy × foc als foc verschiedene gefilterte 2D-Matrizen angesehen werden kann. Die einzelnen so genannten Kanäle umfassen Merkmalskarten der Größe fox × foy. Die Bearbeitung durch das konvolutionelle neuronale Netz besteht in einer oder mehrerer Faltungen der Eingangsdaten mit den in einem Trainingsprozess ermittelten Netzparametern (Netzgewichte) mithilfe in der Regel hochgradig parallelisiert in Hardware ausgebildeten Berechnungselementen (z.B. Multiply-Accumulate-Einheiten - MAC-Einheiten) der Recheneinrichtung 2. Die Netzparameter können als Filterkoeffizienten oder Filter angesehen werden.
  • Dazu werden die Eingangs- und Ausgangsmerkmalskarten in Datenabschnitte (so genannte Kacheln) der Dimension tx × ty unterteilt. Diese Kacheln werden sequenziell durch die entsprechenden Berechnungselemente der Berechnungseinheit 2 bearbeitet. Dadurch erhält man Berechnungsergebnisse für die Ausgangsmerkmalskarten, wobei die Eingangsmerkmalskarten gemäß der Einteilung in Kacheln sequentiell in Kacheln der Ausgangsmerkmalskarten überführt werden. Die Berechnungsergebnisse werden für mehrere oder alle Kacheln gesammelt und können wiederum als Zwischenergebnisse für eine Berechnung einer nächsten Schicht verwendet werden oder ggfs. den Ausgangsdaten des neuronalen Netzes entsprechen. Da in der Regel die nächste Neuronenschicht erst berechnet wird, wenn alle Kacheln einer Merkmalskarte bearbeitet worden sind, ist es notwendig, die Zwischenergebnisse zwischenzuspeichern. Dazu werden die Zwischenergebnisse kachelweise komprimiert und zu dem externen Speicher 4 übertragen. Durch die Einteilung in Kacheln, lässt sich block- bzw. kachelweise auf die Daten zugreifen.
  • Im Folgenden wird die Kompression auf die Berechnung einer Kachel beschrieben, wobei beispielhaft von einer Kachel der Dimension D von 8 × 8 ausgegangen wird.
  • In 2 ist ein Flussdiagramm zur Veranschaulichung eines Verfahrens zum Betreiben eines neuronalen Netzes basierend auf einer oder mehreren Eingangsmerkmalskarten und dazu vorgegebenen Netzparametern (Netzgewichte) für eine Berechnung einer oder mehrerer Ausgangsmerkmalskarten dargestellt. Weiterhin veranschaulichen die 3a bis 3e das Kompressionsverfahren anhand einer beispielhaften 8x8-Kachel.
  • Zunächst werden in Schritt S1 eine oder mehrere Merkmalskarten vorgegeben, auf die eine ggf. erste Neuronenschicht des neuronalen Netzes angewendet werden soll.
  • In Schritt S2 wird gemäß einer Ablaufvorschrift ein Abschnitt von benachbarten Daten, eine oder mehrere so genannte Kacheln, mit der Dimension D aus einer oder mehreren der Eingangsmerkmalskarten ausgewählt und anschließend in Schritt S3 daraus mithilfe der Netzparameter eine oder mehrere entsprechende Kacheln einer den Netzparametern zugeordneten Ausgangsmerkmalskarte berechnet.
  • Die einer Ausgangsmerkmalskarte zugeordneten Netzparameter bezeichnet man auch als Kernel. Ein solcher Kernel stellt eine parametrisierte Einheit dar, deren Parameter durch den Trainingsprozess des neuronalen Netzes für die bestimmte Merkmalskarte und die bestimmte Neuronenschicht/Berechnungsschicht vorgegeben wird. Der Kernel dient im Wesentlichen dazu, die Elemente der Ausgangsmerkmalskarte zu berechnen, indem die tx × ty Eingangswerte einer Kachel der Eingangsmerkmalskarte auf einen Ausgangswert der Ausgangsmerkmalskarte abgebildet werden.
  • In Schritt S4 wird überprüft, ob ausreichend freier lokaler Speicher für die Zwischenergebnisse einer ggf. weiteren Berechnung einer Kachel von Ausgangsmerkmalskarten in der Berechnungseinheit vorhanden ist. Ist dies nicht der Fall (Alternative: Nein), wird das Verfahren mit Schritt S5 fortgesetzt, andernfalls (Alternative: Ja) wird zu Schritt S2 zur Berechnung der nächsten Kachel der ausgewählten Ausgangsmerkmalskarte zurückgesprungen.
  • In Schritt S5 werden die so bereits erhaltenen Kacheln der Ausgangsmerkmalskarten in Kacheln insbesondere der Dimension D=tx × ty zerlegt. 3a zeigt eine Kachel mit der ursprünglichen Pixelverteilung.
  • In Schritt S6 werden die Kacheln einzeln oder in Gruppen über eine Transformation in einen Frequenzbereich umgewandelt, um Frequenzbereichsdaten der Dimension D= tx × ty zu erhalten (Frequenzbereichskachel). Dabei wird eine vorgegebene Abfolge der einzelnen Pixel der Kachel als zeitliche oder örtliche Abfolge (Zeit- bzw. Ortsbereich) angesehen, so dass eine Transformation in den Frequenzbereich möglich ist. 3b zeigt die 8×8-Kachel der 3a nach einer Transformation in den Frequenzbereich.
  • Die Transformation kann beispielsweise eine diskrete Cosinus-, diskrete Sinus-, eine Fourrier-Transformation, eine Fast-Fourrier-Transformation, eine Hadamard-Transformation oder dergleichen sein. Beispielsweise gilt für die 2D-DCT-Transformation einer Kachelmatrix X Folgendes (wobei hier beispielhaft tx=ty=n geschrieben wurde): D C T 2 D { X } = C X C T
    Figure DE102018203709A1_0002
    C C n x n ,  C = ( c 11 c 1 n c n 1 c n n )
    Figure DE102018203709A1_0003
    c i j = s i c o s ( ( i 1 ) ( j 1 2 ) π n )
    Figure DE102018203709A1_0004
    s i = { 1 n i = 1 2 n i > 1
    Figure DE102018203709A1_0005
  • Nach der Transformation der Kacheln in den Frequenzbereich werden in Schritt S7 die Frequenzbereichsdaten mit einer für die betreffende Neuronenschicht bzw. Merkmalskarte vorgegebenen Kompressionsmatrix A der Größe tx × ty elementweise multipliziert, um eine gefilterte respektive mit Null-Elementen versehene Frequenzbereichskachel zu erhalten.
  • 3c zeigt eine beispielhafte Kompressionsmatrix, wobei die hellen Einträge einem Wert von 1 und die dunklen Einträge einem Wert von 0 entsprechen. Diese Kompressionsmatrix ist beispielhaft, und es können auch Werte zwischen 0 und 1 angenommen werden. 3d zeigt eine mit der Kompressionsmatrix beaufschlagte Frequenzbereichskachel (transformierter Datenabschnitt).
  • Abhängig von den Einträgen der Kompressionsmatrix A ergibt sich gegebenenfalls eine Veränderung der Frequenzbereichsdaten (gefilterter Datenabschnitt).
  • In Schritt S8 wird die in den Frequenzbereich transformierte und mit der Kompressionsmatrix A beaufschlagte Kachel mithilfe eines geeigneten Kompressionsverfahrens codiert. Die mit der Kompressionsmatrix modifizierte Frequenzbereichskachel enthält eine größere Anzahl von Bereichen und längere, die aufeinanderfolgende Nullen enthalten, die in besonders effektiver Weise komprimiert werden können, wie z. B. durch das Run-Length-Codierverfahren oder durch Entropiecodierung. Dadurch lässt sich eine hohe Kompressionsrate erreichen, die lediglich zu geringen Informationsverlusten bezüglich der Anwendung und Berechnung des neuronalen Netzes führt. Die codierten Frequenzbereichskacheln werden in Schritt S9 in den externen Speicher 4 übertragen.
  • In Schritt S10 wird überprüft, ob weitere Kacheln der Merkmalskarten in entsprechender Weise berechnet werden soll. Ist dies der Fall (Alternative: Ja), wird zu Schritt S2 zurückgesprungen und das Verfahren der Schritte S2 bis S9 für weitere Kacheln der Merkmalskarten wiederholt. Anderenfalls (Alternative: Nein) wird das Verfahren mit Schritt S10 fortgesetzt.
  • In Schritt S11 wird überprüft, ob eine nächste Schicht des neuronalen Netzes basierend auf den zuvor aus den Merkmalskarten bestimmten Berechnungsergebnissen berechnet werden soll. Ist dies der Fall (Alternative: Ja), wird das Verfahren durch Rücksprung zu Schritt S1 basierend auf Merkmalskarten, die sich aus den zwischengespeicherten codierten Merkmalskarten ergeben, wiederholt. Anderenfalls (Alternative: Nein) stellen die zwischengespeicherten Ausgangsmerkmalskarten den Ausgang des neuronalen Netzes in komprimierter Form dar. Diese können zur weiteren Verwendung durch Decodierung entsprechend des verwendeten Kompressionsverfahrens decodiert werden.
  • Zur Verwendung der Frequenzbereichskacheln der Merkmalskarten aus dem externen Speicher 4 für das Durchführen einer erneuten Berechnung werden die codierten Frequenzbereichskacheln der Merkmalskarten durch Anwendung des dem Kompressionsverfahren des Schritts S8 entsprechenden (korrespondierenden) Dekompressionsverfahrens in der Dekompressionseinheit 5 berechnet und anschließend durch die inverse Frequenztransformation rücktransformiert.
  • Die aus dem externen Speicher geladenen Kacheln befinden sich aufgrund des Kompressionsverfahrens im Frequenzbereich und wurden codiert und somit komprimiert abgespeichert. Diese Kacheln werden in einem nachfolgenden Berechnungsschritt nach dem Laden aus dem externen Speicher zunächst dekodiert, d.h. aus einer RLE-Darstellung oder einer Entropie-Kodierung dekodiert und anschließend aus dem Frequenzbereich in den Ortsbereich zurücktransformiert (modifizierter Datenabschnitt), um eine modifizierte Kachel einer Eingangsmerkmalskarte der nachfolgenden Neuronenschicht zu erstellen. Erst im Anschluss wird dieser modifizierte Datenabschnitt mithilfe der Netzparameter in eine den Netzparametern zugeordneten Ausgangsmerkmalskarte überführt.
  • 3e zeigt eine Kachel, die sich durch Rücktransformation der mit der Kompressionsmatrix beaufschlagten Frequenzbereichskachel ergibt. Man erkennt, dass das Bild der 3e dem Bild der 3a sehr ähnlich ist.
  • Durch die Rücktransformation ändern sich beispielsweise die ursprünglichen Daten nicht, wenn die Kompressionsmatrix A ausschließlich Einträge von „1“ enthält.
  • Die Anwendung der Kompressionsmatrix A auf die Frequenzbereichskacheln entspricht der Anwendung eines digitalen Filters. Je weiter sich die Einträge in der Kompressionsmatrix A links oben befinden, desto tieffrequentere Anteile werden beaufschlagt bzw. gefiltert. Umgekehrt, je weiter sich die Einträge in der Kompressionsmatrix A rechts unten befinden, desto höherfrequente Anteile werden beaufschlagt bzw. gefiltert. Bei einer Kompressionsmatrix, die in der unteren rechten Hälfte Einträge von „0“ aufweist, ergeben sich nach der Rücktransformation in dem Ortsbereich weniger Fluktuationen, d. h. hohe Frequenzanteile der Einträge der zurücktransformierten Ausgangsmerkmalskarte sind verringert bzw. entfernt. Dennoch bleibt die Grundstruktur der Ausgangsmerkmalskarte weiterhin vorhanden.
  • Es wurde festgestellt, dass für die Übertragung durch eine Neuronenschicht höherfrequente Frequenzanteile für den Darstellungsfehler des neuronalen Netzes weniger relevant sind als niederfrequente Frequenzanteile. Daher kann man für die Kompression von Zwischenergebnissen eines neuronalen Netzes eine Kompressionsmatrix wählen, die in den den hochfrequenten Frequenzanteilen entsprechenden Einträgen Nullen enthält.
  • In einer weiteren Variante kann sich die Datenreduktion dadurch ergeben, dass der Eintrag einer Frequenzbereichskachel vor der Codierung des Schritts S8 zu Null gesetzt wird, wenn der jeweilig entsprechende Frequenzanteil in der Kompressionsmatrix einen Grenzwert unterschreitet. Die Frequenzfilterung also in Abhängigkeit des entsprechenden Eintrags in der Kompressionsmatrix gewählt wird.
  • In den 4a bis 4f ist der gesamte Prozess angewendet auf Eingangsdaten, die durch Merkmalskarten (4a) in mehreren Kanälen gegeben sind. Man erkennt die Unterteilung jeder der Merkmalskarten in Kacheln (4b) gleicher Größen und die Verarbeitung der Kacheln durch Transformation (4c) in den Frequenzbereich und die Beaufschlagung mit der Kompressionsmatrix A ( 4d), um die modifizierten Merkmalskarten zu erhalten (4f). In einen externen Speicher werden die modifizierten Frequenzbereichskacheln (4d) gespeichert, nachdem sie mit einem geeigneten Verfahren codiert/komprimiert wurden (RLE oder Entropiekodierung). Für das Wiedereinlesen der gespeicherten Daten werden die codierten Frequenzbereichskacheln wieder abgerufen, decodiert und anschließend rücktransformiert. (4e)
  • Alternativ kann die Unterteilung der Eingangsdaten entlang der Kanäle vorgenommen werden, so dass anstatt von Kacheln der Eingangsmerkmalskarte eindimensionale Eingangsdatenvektoren x verarbeitet werden können. Für die eindimensionale Frequenztransformation gilt dann folgende Transformationsvorschrift: D C T 10 { x } = x A T
    Figure DE102018203709A1_0006
  • Die Vorgehensweise ist in den 5a bis 5f schematisch entsprechend den 4a bis 4f dargestellt.
  • Es kann für jede Neuronenschicht eine separate Kompressionsmatrix vorgegeben sein. Gegebenenfalls können für jeden der Kanäle separate Kompressionsmatrizen vorgegeben werden.
  • Für jede der Kompressionsmatrizen existiert eine der Dimension D = tx × ty entsprechende Anzahl von Elementen in den Kompressionsmatrizen. Diese müssen manuell auf einen geeigneten Kompromiss zwischen Kompressionsrate und minimalen Fehler der Berechnung des neuronalen Netzes eingestellt werden. Dieser Prozess ist aufwendig. Daher wird vorgeschlagen, in einem Adaptionsverfahren die Elemente der Kompressionsmatrizen zu optimieren. Dies kann beispielsweise gemeinsam mit dem Training des neuronalen Netzes vorgenommen werden. Beispielsweise können die Elemente der Kompressionsmatrizen gemeinsam mit den Koeffizienten des neuronalen Netzes mithilfe eines an sich herkömmlichen Trainingsalgorithmus, wie z. B. eines Backpropagation-Algorithmus, optimiert werden. Das heißt, die Kompressionsmatrizen werden in gleichem Maße wie die Neuronenparameter gelernt. Dadurch entfällt die Notwendigkeit eines manuellen Optimierens der Elemente der Kompressionsmatrizen, und die Kompression der einzelnen Neuronenschichten wird unter Berücksichtigung der Kompression anderer Neuronenschichten automatisch eingestellt.
  • Im Detail wird die Optimierung während des Trainingsverfahrens durchgeführt, indem beim Training des neuronalen Netzes die der Optimierung zugrundeliegende Kostenfunktion (siehe Backpropagation-Algorithmus) mit einem weiteren Term beaufschlagt wird. Dieser Term kann eine Norm (z. B. L1-Norm) der Koeffizienten der Kompressionsmatrizen sein. Der zusätzliche Term wirkt hierbei wie eine Regularisierung. Für das gleichzeitige Training von Neuronenparametern der Neuronen des neuronalen Netzes und der Elemente der Filtermatrix kann die Regularisierung mit einem Faktor α ∈ [0, 0.001] in der Kostenfunktion gewichtet werden.
  • In 6 sind beispielhaft für ein neuronales Netz mit 13 Neuronenschichten, denen jeweils eine Kompressionsmatrix zugeordnet ist, die Entwicklung der Elementewerte der zugeordneten Kompressionsmatrizen für 30 Trainingszyklen illustriert, wobei die Graustufen die Elementewerte angeben.
  • Das obige Verfahren ist besonders effizient, wenn die Kompressionseinheit 3 in Hardware realisiert ist. Verarbeitet, komprimiert und kodiert eine solche Hardware-Kompressionseinheit 3 die Berechnungsergebnisse gemäß dem obigen Verfahren durch Pipelining in einem Streaming-Modus, so ist eine Erhöhung der effektiven Bandbreite in Richtung des externen Speichers 4 möglich. Entsprechendes gilt für die Dekompressionseinheit 5 zum Rücklesen, Rücktransformieren und Dekodieren der Frequenzbereichskacheln der Zwischenergebnisse bzw. der Merkmalskarten von dem externen Speicher 4 gemäß dem obigen Verfahren.
  • Da die Übertragung von Daten zu einem externen Speicher 4 sehr viel energieaufwendiger und zeitintensiver ist als die internen Berechnungen und Registerzugriffe, kann durch die Implementierung der Kompressionseinheit 3 und der Dekompressionseinheit 5 die Leistungsaufnahme reduziert und der Datendurchsatz pro Leistungseinheit erhöht werden.
  • Das oben beschriebene Berechnungssystem und das entsprechende Verfahren lassen sich beispielsweise für die Verarbeitung von Bilddaten von Kamerabildern in Kraftfahrzeuganwendungen einsetzen. Dabei werden durch ein Kamerasystem erfasste Bilddaten durch das neuronale Netz des Berechnungssystems verarbeitet, um beispielsweise ein Objekterkennungsverfahren, ein Segmentierungsverfahren oder sonstige Klassifizierungsverfahren für die Bilddaten zu implementieren. Die so verarbeiteten (segmentierten oder klassifizierten) Bilddaten können dann in einem Fahrerassistenzsystem oder einem System zum autonomen Betrieb des Kraftfahrzeugs in an sich bekannter Weise verwendet werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • J. H. Ko et al., „Adaptive Weight Compression for Memory-Efficient Neural Networks,“ in Design, Automation Test in Europe Conference Exhibition (DATE), Lausanne, Switzerland, 2017 [0006]

Claims (17)

  1. Verfahren zum Betreiben eines Berechnungssystems (1) mit einem neuronalen Netz, insbesondere einem gefalteten (convolutional) neuronalen Netz, wobei das Berechnungssystem eine Recheneinrichtung (2) für die sequentielle Berechnung des neuronalen Netzes und einen dazu externen Speicher (4) zum Zwischenspeichern von Zwischenergebnissen der Berechnungen in der Recheneinrichtung (2) aufweist, mit folgenden Schritten: - schrittweises Berechnen (S2, S3) von Datenabschnitten, die jeweils eine Gruppe von Zwischenergebnissen darstellen, mithilfe eines neuronalen Netzes; - verlustbehaftetes Komprimieren (S5, S6, S7, S8) einer oder mehrerer der Datenabschnitte, um komprimierte Zwischenergebnisse zu erhalten; und - Übertragen (S9) der komprimierten Zwischenergebnisse an den externen Speicher (4).
  2. Verfahren nach Anspruch 1, wobei für eine Berechnung mithilfe des neuronalen Netzes die komprimierten Zwischenergebnisse aus dem externen Speicher (4) abgerufen werden, diese dekomprimiert werden und eine weitere Berechnung abhängig von den dekomprimierten Zwischenergebnissen durchgeführt wird.
  3. Verfahren nach einem der Ansprüche 1 bis 2, wobei zum verlustbehafteten Komprimieren die Datenabschnitte jeweils in einen Frequenzbereich transformiert werden (S6) und die transformierten Datenabschnitte elementweise gefiltert werden (S7), um modifizierte Datenabschnitte zu erhalten.
  4. Verfahren nach Anspruch 3, wobei das elementweise Filtern (S7) eine Multiplikation von einem Teil von Elementen der transformierten Datenabschnitte mit 0 umfasst, um modifizierte Datenabschnitte mit einer Anzahl von Elementen von „0“ zu erhalten, die größer ist als die Anzahl von Elementen von „0“ in den Datenabschnitten der Eingangsmerkmalskarte.
  5. Verfahren nach Anspruch 3 oder 4, wobei ein oder mehrere modifizierte Datenabschnitte, insbesondere gemeinsam, mit einem vorgegebenen Codierungsverfahren codiert werden, um die komprimierten Zwischenergebnisse zu erhalten, insbesondere mithilfe einer Run-Length-Codierung oder Entropiecodierung.
  6. Verfahren nach Anspruch 5, wobei die transformierten Datenabschnitte zum elementweisen Filtern (S7) mit einer Kompressionsmatrix beaufschlagt werden, die insbesondere für jede Berechnungsschicht der sequentiellen Berechnung des neuronalen Netzwerks separat vorgegeben wird.
  7. Verfahren nach Anspruch 6, wobei die Kompressionsmatrix so auf das Codierungsverfahren der transformierten Datenabschnitte abgestimmt ist, dass eine bessere Kompression erreicht wird als bei einer direkten Anwendung des Codierungsverfahrens auf die nicht-transformierten Datenabschnitte.
  8. Verfahren nach Anspruch 6 oder 7, wobei die Kompressionsmatrix so vorgegeben wird, dass höherfrequente Anteile der transformierten Datenabschnitte gefiltert werden.
  9. Verfahren nach Anspruch 8, wobei die Kompressionsmatrix vorgegeben wird, indem während eines Trainings des neuronalen Netzes Matrixelemente der Filtermatrizen für jede Berechnungsschicht gemeinsam mit Neuronenparametern von Neuronen des neuronalen Netzes trainiert werden, insbesondere mithilfe eines Backpropagation-Verfahrens.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei das neuronale Netz einem konvolutionellen neuronalen Netz mit mehreren Neuronenschichten entspricht, denen jeweils Neuronenparameter zugeordnet sind, wobei ein Element einer Ausgangsmerkmalskarte jeweils durch Beaufschlagung eines Datenabschnitts mindestens einer Eingangsmerkmalskarte mit den der Ausgangsmerkmalskarte zugeordneten Neuronenparameter erhalten wird.
  11. Verfahren nach einem der Ansprüche 1 bis 10, wobei die komprimierten Zwischenergebnisse an den externen Speicher (4) übertragen werden und wobei für eine weitere Berechnung mithilfe des neuronalen Netzes die komprimierten Zwischenergebnisse aus dem externen Speicher (4) abgerufen werden und dekomprimiert werden, um dekomprimierte Datenabschnitte zu erhalten.
  12. Verfahren nach Anspruch 11, wobei nach dem Abrufen der komprimierten Zwischenergebnisse aus dem externen Speicher (4) diese mit einem Decodierungsverfahren decodiert werden und anschließend rücktransformiert werden, um die dekomprimierten Zwischenergebnissen zu erhalten.
  13. Berechnungssystem (1) mit einem neuronalen Netz, insbesondere einem gefalteten (convolutional) neuronalen Netz, wobei das Berechnungssystem (1) eine Recheneinrichtung (2) für die sequentielle Berechnung des neuronalen Netzes und einen dazu externen Speicher (4) zum Zwischenspeichern von Zwischenergebnissen der Berechnungen in der Recheneinrichtung (2) aufweist, wobei die Recheneinrichtung (2) ausgebildet ist, um: - Datenabschnitte, die jeweils eine Gruppe von Zwischenergebnissen darstellen, mithilfe eines neuronalen Netzes schrittweise zu berechnen; - einen oder mehrere der Datenabschnitte verlustbehaftet zu, um komprimierte Zwischenergebnisse zu erhalten; - die komprimierten Zwischenergebnisse an den externen Speicher (4) zu übertragen.
  14. Berechnungssystem (1) nach Anspruch 13, mit einer Dekompressionseinheit (5), die ausgebildet ist, um für eine Berechnung mithilfe des neuronalen Netzes die komprimierten Zwischenergebnisse aus dem externen Speicher (4) abzurufen, diese zu dekomprimieren und eine weitere Berechnung abhängig von den dekomprimierten Zwischenergebnissen durchzuführen.
  15. Verwendung des Berechnungssystems nach einem der Ansprüche 13 und 14 zur Verarbeitung von Bilddaten von Kamerabildern in einem Fahrerassistenzsystem zur Durchführung einer Fahrerassistenzfunktion oder einem System zum autonomen Betrieb des Kraftfahrzeugs (1), um insbesondere ein Objekterkennungsverfahren, ein Segmentierungsverfahren oder ein Klassifizierungsverfahren für die Bilddaten durchzuführen.
  16. Computerprogramm, welches dazu eingerichtet ist, alle Schritte eines Verfahrens nach einem der Ansprüche 1 bis 12 auszuführen.
  17. Maschinenlesbares Speichermedium, auf welchem ein Computerprogramm nach Anspruch 16 gespeichert ist.
DE102018203709.4A 2018-03-12 2018-03-12 Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes Pending DE102018203709A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102018203709.4A DE102018203709A1 (de) 2018-03-12 2018-03-12 Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes
CN201910179660.3A CN110263910B (zh) 2018-03-12 2019-03-11 用于存储高效地运行神经网络的方法和设备
US16/298,335 US11715019B2 (en) 2018-03-12 2019-03-11 Method and device for operating a neural network in a memory-efficient manner

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018203709.4A DE102018203709A1 (de) 2018-03-12 2018-03-12 Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes

Publications (1)

Publication Number Publication Date
DE102018203709A1 true DE102018203709A1 (de) 2019-09-12

Family

ID=67701722

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018203709.4A Pending DE102018203709A1 (de) 2018-03-12 2018-03-12 Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes

Country Status (3)

Country Link
US (1) US11715019B2 (de)
CN (1) CN110263910B (de)
DE (1) DE102018203709A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114077889A (zh) * 2020-08-13 2022-02-22 华为技术有限公司 一种神经网络处理器和数据处理方法
DE102023118393A1 (de) 2023-07-12 2025-01-16 Cariad Se Verfahren zum Betreiben eines faltenden neuronalen Netzwerks, Ein-Chip-System sowie Fahrzeug

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US11139827B2 (en) * 2019-03-15 2021-10-05 Samsung Electronics Co., Ltd. Conditional transcoding for encoded data
US11663746B2 (en) * 2019-11-15 2023-05-30 Intel Corporation Systolic arithmetic on sparse data
CN111049836A (zh) * 2019-12-16 2020-04-21 北京澎思科技有限公司 数据处理方法、电子设备及计算机可读存储介质
CN111126589B (zh) * 2019-12-31 2022-05-20 昆仑芯(北京)科技有限公司 神经网络数据处理装置、方法和电子设备
US12072806B2 (en) 2020-01-22 2024-08-27 Alibaba Group Holding Limited Compression and decompression module in a cache controller for reducing off-chip data traffic
DE102020202632A1 (de) * 2020-03-02 2021-09-02 Robert Bosch Gesellschaft mit beschränkter Haftung Inferenzberechnung für neuronale Netzwerke mit Schutz gegen Speicherfehler
JP7373751B2 (ja) * 2020-03-31 2023-11-06 パナソニックIpマネジメント株式会社 演算処理システムおよび畳み込み演算方法
WO2021199569A1 (ja) * 2020-03-31 2021-10-07 パナソニックIpマネジメント株式会社 演算処理システムおよび畳み込み演算方法
KR20210136706A (ko) 2020-05-08 2021-11-17 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN114697672B (zh) * 2020-12-30 2023-06-27 中国科学院计算技术研究所 基于游程全零编码的神经网络量化压缩方法及系统
CN112749802B (zh) * 2021-01-25 2024-02-09 深圳力维智联技术有限公司 神经网络模型的训练方法、装置以及计算机可读存储介质
CN115150625B (zh) 2021-03-30 2024-08-06 中国电信股份有限公司 图像处理方法、系统、编码端和计算机可读存储介质
CN112906874B (zh) * 2021-04-06 2024-08-23 南京大学 卷积神经网络特征图数据压缩方法及装置
WO2022259427A1 (ja) 2021-06-09 2022-12-15 日本電信電話株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
CN113723295B (zh) * 2021-08-31 2023-11-07 浙江大学 一种基于图像域频域双流网络的人脸伪造检测方法
CN116094680B (zh) * 2023-01-05 2024-08-30 惠州研控自动化科技有限公司 多通道数据传输方法、系统、设备及存储介质
US20250007534A1 (en) * 2023-06-30 2025-01-02 Novatek Microelectronics Corp. Coding apparatus and coding method
US20250355820A1 (en) * 2024-05-15 2025-11-20 International Business Machines Corporation System steering for an i/o sustainability target

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7164794B2 (en) * 2002-08-22 2007-01-16 Winbond Electronics Corp. Unconstrained handwriting recognition
US20160358069A1 (en) * 2015-06-03 2016-12-08 Samsung Electronics Co., Ltd. Neural network suppression
US11244225B2 (en) * 2015-07-10 2022-02-08 Samsung Electronics Co., Ltd. Neural network processor configurable using macro instructions
CN105260776B (zh) * 2015-09-10 2018-03-27 华为技术有限公司 神经网络处理器和卷积神经网络处理器
CN105630870B (zh) * 2015-12-16 2017-06-30 广州神马移动信息科技有限公司 搜索请求处理方法及系统
US10218976B2 (en) * 2016-03-02 2019-02-26 MatrixView, Inc. Quantization matrices for compression of video
WO2017151877A1 (en) * 2016-03-02 2017-09-08 MatrixView, Inc. Apparatus and method to improve image or video quality or encoding performance by enhancing discrete cosine transform coefficients
CN107392305A (zh) * 2016-05-13 2017-11-24 三星电子株式会社 实现和执行神经网络的方法及计算机可读介质
CN106650922B (zh) * 2016-09-29 2019-05-03 清华大学 硬件神经网络转换方法、计算装置、软硬件协作系统
US10096134B2 (en) * 2017-02-01 2018-10-09 Nvidia Corporation Data compaction and memory bandwidth reduction for sparse neural networks
US10599935B2 (en) * 2017-02-22 2020-03-24 Arm Limited Processing artificial neural network weights
KR102499396B1 (ko) * 2017-03-03 2023-02-13 삼성전자 주식회사 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법
CN107633297B (zh) * 2017-03-10 2021-04-06 南京风兴科技有限公司 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
KR102301232B1 (ko) * 2017-05-31 2021-09-10 삼성전자주식회사 다채널 특징맵 영상을 처리하는 방법 및 장치
CN107451659B (zh) * 2017-07-27 2020-04-10 清华大学 用于位宽分区的神经网络加速器及其实现方法
US20190190538A1 (en) * 2017-12-18 2019-06-20 Facebook, Inc. Accelerator hardware for compression and decompression

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Embedded Vision Alliance: Deep Learning for Object Recognition: DSP and Specialized Processor Optimizations, 2017, S. 1-13. URL: https://www.embedded-vision.com/platinum-members/embedded-vision-alliance/embedded-vision-training/documents/pages/cnn-dsps, Archiviert in http://www.archive.org am 06.07.2017 [abgerufen am 02.10.2018] *
Han, S. [et.al.]: EIE: Efficient Inference Engine on Compressed Deep Neural Network. In: 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA), 2016, S. 243-254. - ISSN 1063-6897. https://doi.org/10.1109/ISCA.2016.30 [abgerufen am 02.10.2018] *
Han,Song; Mao, Huizi; Dally, William J.: Deep Compression: Compressing Deep Neural Network with Pruning, Trained Quantization and Huffman Coding. In: ICLR 2016, 15.02.2016, S. 1-14. https://arxiv.org/abs/1510.00149v5 [abgerufen am 02.10.2018] *
J. H. Ko et al., „Adaptive Weight Compression for Memory-Efficient Neural Networks," in Design, Automation Test in Europe Conference Exhibition (DATE), Lausanne, Switzerland, 2017
JPEG. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 06.03.2018. URL: https://en.wikipedia.org/w/index.php?title=JPEG&oldid=829011008 [abgerufen am 02.10.2018] *
KO, Jong Hwan [u.a.]: Adaptive weight compression for memory-efficient neural networks. In: Proceedings of the 2017 Design, Automation & Test in Europe (DATE), 27-31 March 2017, Lausanne, Switzerland. 2017, S. 199-204. - ISBN 978-3-9815370-8-6. DOI: 10.23919/DATE.2017.7926982. URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7926982 [abgerufen am 2018-07-25] *
Parashar, Angshuma [et.al.]: SCNN: An Accelerator for Compressed-sparse Convolutional Neural Networks. In: SIGARCH Comput. Archit. News, 45, 2017, 2, S. 27-40. - ISSN 0163-5964. http://doi.acm.org/10.1145/3140659.3080254 [abgerufen am 02.10.2018] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114077889A (zh) * 2020-08-13 2022-02-22 华为技术有限公司 一种神经网络处理器和数据处理方法
DE102023118393A1 (de) 2023-07-12 2025-01-16 Cariad Se Verfahren zum Betreiben eines faltenden neuronalen Netzwerks, Ein-Chip-System sowie Fahrzeug
DE102023118393B4 (de) 2023-07-12 2025-01-23 Cariad Se Verfahren zum Betreiben eines faltenden neuronalen Netzwerks, Ein-Chip-System sowie Fahrzeug

Also Published As

Publication number Publication date
US11715019B2 (en) 2023-08-01
US20190279095A1 (en) 2019-09-12
CN110263910B (zh) 2025-02-18
CN110263910A (zh) 2019-09-20

Similar Documents

Publication Publication Date Title
DE102018203709A1 (de) Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes
DE69628760T2 (de) Speicherung und wiedergewinnung von grossen digitalen bildern
DE69736329T2 (de) Verschachtelte verteilte kodierung von spärlich bestückten datensätzen
DE19983369B4 (de) Bildkompression unter Verwendung einer gerichteten vorhersagenden Codierung der Wavelet-Koeffizienten
DE3789116T2 (de) Prozessor zur zweidimensionalen diskreten cosinustransformation.
DE69620963T2 (de) Verfahren und Vorrichtung zur Bilddatenkomprimierung
DE69829700T2 (de) Bildkompression mit Diskreter-Wavelet-Transformation DWT
DE69133175T2 (de) Ein Bilddaten-Bearbeitungssystem
DE102017218889A1 (de) Unscharf parametriertes KI-Modul sowie Verfahren zum Betreiben
DE102022105748A1 (de) Effiziente optimierung für den einsatz und die ausführung neuronaler netze
EP2109993A1 (de) Vorrichtung und verfahren zum kodieren eines transformationskoeffizientenblockes
DE102022105810A1 (de) Effiziente Speichernutzungsoptimierung für Einsatz und Ausführung neuronaler Netze
EP3624456A1 (de) Verfahren zur kompression und dekompression von bilddaten
EP1472888B1 (de) Kontextsensitive kodierung und dekodierung eines videodatenstroms
EP0974105B1 (de) Verfahren zur mehrdimensionalen, diskreten wavelet-transformation und transformationseinheit zur durchführung des verfahrens
DE69820148T2 (de) Verfahren zur Kompression/Dekompression von Bilddaten
EP3434015B1 (de) Datenkompression mittels adaptiven unterabtastens
EP3736742B1 (de) Maschinelles lernsystem, sowie ein verfahren, ein computerprogramm und eine vorrichtung zum erstellen des maschinellen lernsystems
DE10300057A1 (de) Zweidimensionales Orthogonaltransformations- und Quantisierungsverfahren sowie Vorrichtung und Programm dafür
DE102021133878A1 (de) Bildkomprimierung mittels künstlicher neuronaler Netzwerke
DE3545106C2 (de)
DE102021201497A1 (de) Verfahren und System zur Verarbeitung von Bildinformationen mit einem künstlichen neuronalen Netz
DE102022212269A1 (de) Halbleitervorrichtung
DE102018209901A1 (de) Recheneinheit, Verfahren und Computerprogramm zum Multiplizieren zumindest zweier Multiplikanden
DE69032127T2 (de) Bildkompressionsverfahren durch autoorganisation von einem neuronalen netz

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed