DE102019109631A1 - Tiefes komprimiertes netzwerk - Google Patents

Tiefes komprimiertes netzwerk Download PDF

Info

Publication number
DE102019109631A1
DE102019109631A1 DE102019109631.6A DE102019109631A DE102019109631A1 DE 102019109631 A1 DE102019109631 A1 DE 102019109631A1 DE 102019109631 A DE102019109631 A DE 102019109631A DE 102019109631 A1 DE102019109631 A1 DE 102019109631A1
Authority
DE
Germany
Prior art keywords
weighting matrix
matrix approximation
approximation
logic
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.)
Withdrawn
Application number
DE102019109631.6A
Other languages
English (en)
Inventor
Sara Baghsorkhi
Matthew Sotoudeh
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102019109631A1 publication Critical patent/DE102019109631A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)

Abstract

Eine Ausführungsform einer Halbleiter-Package-Vorrichtung kann Technologie zum Anwenden einer niedrigrangigen Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks, um eine erste Gewichtungsmatrixapproximation zu bestimmen, zum Umformen der ersten Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation und zum Komprimieren des Entscheidungsnetzwerks basierend auf der zweiten Gewichtungsmatrixapproximation beinhalten. Andere Ausführungsformen sind offenbart und beansprucht.

Description

  • TECHNISCHES GEBIET
  • Ausführungsformen betreffen allgemein Maschinenlernsysteme. Insbesondere betreffen Ausführungsformen ein tiefes komprimiertes Netzwerk.
  • HINTERGRUND
  • Maschinenlerntechnologie kann Neuronalnetzwerke beinhalten, wie etwa Faltungs-Neuronalnetzwerke (CNNs: Convolutional Neural Networks), tiefe Neuronalnetzwerke (DNNs: Deep Neural Networks) und rekurrente Neuronalnetzwerke (RNNs). Allgemein gibt es möglicherweise einen Kompromiss zwischen der Genauigkeit eines Neuronalnetzwerks und der Größe des trainierten Neuronalnetzwerks. Wenn ein Neuronalnetzwerk zum Beispiel zu sehr komprimiert wird, kann dies die nützliche Genauigkeit des Neuronalnetzwerks verringern.
  • Figurenliste
  • Die verschiedenen Vorteile der Ausführungsformen werden einem Fachmann bei der Durchsicht der folgenden Beschreibung und der angehängten Ansprüche und unter Bezugnahme auf die folgenden Zeichnungen ersichtlich, in denen gilt:
    • 1 ist ein Blockdiagramm eines Beispiels für ein elektronisches Verarbeitungssystem gemäß einer Ausführungsform;
    • 2 ist ein Blockdiagramm eines Beispiels für eine Halbleiter-Package-Vorrichtung gemäß einer Ausführungsform;
    • 3 ist ein Flussdiagramm eines Beispiels für ein Verfahren zum Komprimieren einer Gewichtungsmatrix gemäß einer Ausführungsform;
    • 4 ist ein Blockdiagramm eines Beispiels für ein Maschinenlernnetzwerk gemäß einer Ausführungsform;
    • 5A und 5B sind veranschaulichende Diagramme eines Beispiels für eine nichtlineare Transferfunktion gemäß einer Ausführungsform;
    • 6 ist ein veranschaulichendes Diagramm eines Prozessflusses zum Komprimieren eines Neuronalnetzwerks gemäß einer Ausführungsform;
    • 7A und 7B sind veranschaulichende Diagramme von Netzwerkschichten gemäß einer Ausführungsform;
    • 8A und 8B sind Blockdiagramme von Beispielen für Netzwerkkomprimierungsvorrichtungen gemäß Ausführungsformen;
    • 9 ist ein Blockdiagramm eines Beispiels für einen Prozessor gemäß einer Ausführungsform; und
    • 10 ist ein Blockdiagramm eines Beispiels für ein System gemäß einer Ausführungsform.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Jetzt mit Bezug auf 1 kann eine Ausführungsform eines elektronischen Verarbeitungssystems 10 einen Prozessor 11, einen Speicher 12, der kommunikativ mit dem Prozessor 11 gekoppelt ist, und ein Entscheidungsnetzwerk 13, das kommunikativ mit dem Prozessor 11 und dem Speicher 12 gekoppelt ist, beinhalten. Das Entscheidungsnetzwerk 13 kann Logik 14 beinhalten zum: Anwenden einer niedrigrangigen Faktorisierung an einer Gewichtungsmatrix des Entscheidungsnetzwerks 13, um eine erste Gewichtungsmatrixapproximation zu bestimmen, Umformen der ersten Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation und Komprimieren des Entscheidungsnetzwerks basierend auf der zweiten Gewichtungsmatrixapproximation. Die Logik 14 kann zum Beispiel dazu ausgelegt sein, die erste Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umzuformen, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen. Bei manchen Ausführungsformen kann die Logik 14 dazu ausgelegt sein, Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation zu streuen. Bei manchen Ausführungsformen kann die Logik 14 alternativ oder zusätzlich dazu ausgelegt sein, das Layout von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation abzuändern. Die Logik 14 kann zum Beispiel dazu ausgelegt sein, Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge zu lesen und Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge zu schreiben (oder z. B. umgekehrt). Bei einer beliebigen der Ausführungsformen hierin kann das Entscheidungsnetzwerk 13 ein CNN und/oder ein DNN und/oder ein RNN umfassen. Bei manchen Ausführungsformen können sich das Entscheidungsnetzwerk 13 und/oder die Logik 14 in verschiedenen Komponenten, einschließlich des Prozessors 11 (z.B. auf demselben Die), befinden oder mit diesen kolokalisiert sein.
  • Ausführungsformen sowohl des obigen Prozessors 11, des obigen Speichers 12, des obigen Entscheidungsnetzwerks 13, der obigen Logik 14 und anderer Systemkomponenten können in Hardware, Software oder einer beliebigen geeigneten Kombination davon implementiert werden. Hardwareimplementierungen können zum Beispiel konfigurierbare Logik, wie etwa zum Beispiel programmierbare Logik-Arrays (PLAs), feldprogrammierbare Gate-Arrays (FPGAs), komplexe programmierbare Logikeinrichtungen (CPLDs: Complex Programmable Logic Devices), oder Logikhardware mit fester Funktionalität beinhalten, die Schaltungstechnologie verwendet, wie etwa zum Beispiel ASIC(Application Specific Integrated Circuit - anwendungsspezifische integrierte Schaltung)-, CMOS(Complementary Metal Oxide Semiconductor - komplementärer Metalloxidhalbleiter)- oder TTL(Transistor-Transistor-Logik)-Technologie oder eine beliebige Kombination davon.
  • Alternativ oder zusätzlich dazu können alle oder Teile dieser Komponenten in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert werden, die in einem maschinen- oder computerlesbaren Speicherungsmedium gespeichert sind, wie etwa Direktzugriffsspeicher (RAM: Random Access Memory), Nurlesespeicher (ROM: Read Only Memory), programmierbaren ROM (PROM), Firmware, Flash-Speicher usw., und durch einen Prozessor oder eine Recheneinrichtung auszuführen sind. Computerprogrammcode zum Ausführen der Operationen der Komponenten kann zum Beispiel in einer beliebigen Kombination einer oder mehrerer Betriebssystem(OS: Operating System)-anwendbaren/-geeigneten Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache, wie etwa PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen, und herkömmlicher prozeduraler Programmiersprachen, wie etwa die „C“-Programmiersprache oder ähnliche Programmiersprachen. Der Speicher 12, beständige Speicherungsmedien oder ein anderer Systemspeicher kann bzw. können zum Beispiel einen Satz von Anweisungen speichern, der bei Ausführung durch den Prozessor 11 bewirkt, dass das System 10 eine oder mehrere Komponenten, ein oder mehrere Merkmale oder Aspekte des Systems 10 (z. B. die Logik 14, die eine niedrigrangige Faktorisierung an einer Gewichtungsmatrix des Entscheidungsnetzwerks 13 anwendet, um die erste Gewichtungsmatrixapproximation zu bestimmen, die erste Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umformt usw.) implementiert.
  • Jetzt unter Bezugnahme auf 2 kann eine Ausführungsform einer Halbleiter-Package-Vorrichtung 20 ein oder mehrere Substrate 21 und Logik 22, die mit dem einen oder den mehreren Substraten 21 gekoppelt ist, beinhalten, wobei die Logik 22 zumindest teilweise in einer konfigurierbaren Logik und/oder Hardwarelogik mit fester Funktionalität implementiert wird. Die mit dem einen oder den mehreren Substraten 21 gekoppelte Logik 22 kann dazu ausgelegt sein, eine niedrigrangige Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks anzuwenden, um eine erste Gewichtungsmatrixapproximation zu bestimmen, die erste Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation umzuformen und das Entscheidungsnetzwerk basierend auf der zweiten Gewichtungsmatrixapproximation zu komprimieren. Die Logik 22 kann zum Beispiel dazu ausgelegt sein, die erste Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umzuformen, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen. Bei manchen Ausführungsformen kann die Logik 22 dazu ausgelegt sein, Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation zu streuen. Bei manchen Ausführungsformen kann die Logik 22 alternativ oder zusätzlich dazu ausgelegt sein, das Layout von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation abzuändern. Die Logik 22 kann zum Beispiel dazu ausgelegt sein, Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge zu lesen und Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge zu schreiben (oder z. B. umgekehrt). Bei beliebigen der Ausführungsformen hierin kann das Entscheidungsnetzwerk ein CNN und/oder ein DNN und/oder ein RNN umfassen. Bei manchen Ausführungsformen kann die mit dem einen oder den mehreren Substraten 21 gekoppelte Logik 22 Transistorkanalgebiete beinhalten, die in dem einen oder den mehreren Substraten 21 positioniert sind.
  • Ausführungsformen der Logik 22 und anderer Komponenten der Vorrichtung 20 können in Hardware, Software oder einer beliebigen Kombination davon implementiert werden, einschließlich zumindest einer teilweisen Implementierung in Hardware. Hardwareimplementierungen können zum Beispiel konfigurierbare Logik, wie etwa zum Beispiel PLAs, FPGAs, CPLDs, oder Logikhardware mit fester Funktionalität beinhalten, die Schaltungstechnologie verwendet, wie etwa zum Beispiel ASIC-, CMOS- oder TTL-Technologie oder eine beliebige Kombination davon. Zusätzlich dazu können Teile dieser Komponenten in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert werden, die in einem maschinen- oder computerlesbaren Speicherungsmedium gespeichert sind, wie etwa RAM, ROM, PROM, Firmware, Flash-Speicher usw., und durch einen Prozessor oder eine Recheneinrichtung auszuführen sind. Computerprogrammcode zum Ausführen der Operationen der Komponenten kann zum Beispiel in einer beliebigen Kombination einer oder mehrerer OS-anwendbaren/-geeigneten Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache, wie etwa PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen, und herkömmlicher prozeduraler Programmiersprachen, wie etwa die „C“-Programmiersprache oder ähnliche Programmiersprachen.
  • Die Vorrichtung 20 kann einen oder mehrere Aspekte des Verfahrens 30 (3) oder eine beliebige der hierin besprochenen Ausführungsformen implementieren. Bei manchen Ausführungsformen kann die veranschaulichte Vorrichtung 20 das eine oder die mehreren Substrate 21 (z. B. Silizium, Saphir, Galliumarsenid) und die Logik 22 (z. B. ein Transistor-Array und andere integrierte Schaltungs-/IC-Komponenten), die mit dem einen oder den mehreren Substraten 21 gekoppelt ist, beinhalten. Die Logik 22 kann zumindest teilweise in konfigurierbarer Logik oder Logikhardware mit fester Funktionalität implementiert werden. Bei einem Beispiel kann die Logik 22 Transistorkanalgebiete beinhalten, die in dem einen oder den mehreren Substraten 21 positioniert (z. B. eingebettet) sind. Somit ist die Grenzfläche zwischen der Logik 22 und dem einen oder den mehreren Substraten 21 möglicherweise kein abrupter Übergang. Die Logik 22 kann auch als eine Epitaxialschicht enthaltend angesehen werden, die auf einem Anfangswafer des einen oder der mehreren Substrate 21 aufgewachsen wird.
  • Jetzt unter Bezugnahme auf 3 kann eine Ausführungsform eines Verfahrens 30 zum Komprimieren einer Gewichtungsmatrix Folgendes beinhalten: Anwenden einer niedrigrangigen Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks bei Block 31, um eine erste Gewichtungsmatrixapproximation zu bestimmen, Umformen der ersten Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation bei Block 32 und Komprimieren des Entscheidungsnetzwerks basierend auf der zweiten Gewichtungsmatrixapproximation bei Block 33. Das Verfahren 30 kann zum Beispiel bei Block 34 Umformen der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation beinhalten, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen. Manche Ausführungsformen des Verfahrens 30 können bei Block 35 Streuen von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation beinhalten. Alternativ oder zusätzlich dazu können manche Ausführungsformen des Verfahrens 30 bei Block 36 Abändern des Layouts von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation beinhalten. Das Verfahren 30 kann zum Beispiel bei Block 37 Lesen von Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge und bei Block 38 Schreiben von Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge beinhalten (oder z. B. umgekehrt). Bei einer beliebigen der Ausführungsformen des Verfahrens 30 kann das Entscheidungsnetzwerk bei Block 39 ein CNN und/oder ein DNN und/oder ein RNN umfassen.
  • Ausführungsformen des Verfahrens 30 können in einem System, einer Vorrichtung, einem Computer, einer Einrichtung usw., wie zum Beispiel jene hierin beschriebenen, implementiert werden. Insbesondere können Hardwareimplementierungen des Verfahrens 30 konfigurierbare Logik, wie etwa zum Beispiel PLAs, FPGAs, CPLDs, oder Logikhardware mit fester Funktionalität beinhalten, die Schaltungstechnologie verwendet, wie etwa zum Beispiel ASIC-, CMOS- oder TTL-Technologie oder eine beliebige Kombination davon. Alternativ oder zusätzlich dazu kann das Verfahren 30 in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert werden, die in einem maschinen- oder computerlesbaren Speicherungsmedium gespeichert sind, wie etwa RAM, ROM, PROM, Firmware, Flash-Speicher usw., und durch einen Prozessor oder eine Recheneinrichtung auszuführen sind. Computerprogrammcode zum Ausführen der Operationen der Komponenten kann zum Beispiel in einer beliebigen Kombination einer oder mehrerer OSanwendbaren/-geeigneten Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache, wie etwa PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen, und herkömmlicher prozeduraler Programmiersprachen, wie etwa die „C“-Programmiersprache oder ähnliche Programmiersprachen.
  • Das Verfahren 30 kann zum Beispiel auf einem computerlesbaren Medium implementiert werden, wie in Verbindung mit den untenstehenden Beispielen 20 bis 25 beschrieben. Ausführungsformen oder Teile des Verfahrens 30 können in Firmware, Anwendungen (z. B. über eine Anwendungsprogrammierungsschnittstelle (API: Application Programming Interface)) oder Treibersoftware, die auf einem Betriebssystem (OS) ausgeführt wird, implementiert werden.
  • Manche Ausführungsformen können vorteilhafterweise Selbstkomprimierungstechnologie für ein Neuronalnetzwerk (z. B. ein CNN, ein DNN, ein RNN usw.) bereitstellen. Maschinenlern(ML)-Technologie kann zunehmend in benutzerorientierten Produkten verwendet werden, wie etwa Spracherkennung in Personal Digital Assistants (PDAs), Objektklassifizierung in Bildmanipulationssoftware usw. Ein Teil der ML-Technologie kann auf große Gewichtungsmatrizen angewiesen sein, die die Beziehungen zwischen unterschiedlichen Knoten in einem Netzwerk codieren. Für viele Anwendungen kann die ML-Technologie vorzugsweise direkt auf einer Client-Einrichtung (z. B. einem Smartphone, Tablet, PDA usw.) ausgeführt werden. Die Größe, Kosten, Leistungsfähigkeit und Ressourcenanforderungen einer derartigen ML-Technologie können es jedoch praktikabler/zweckmäßiger gestalten, das Inferenzmodell auf High-End-Servern auszuführen und die Ergebnisse zurück zu dem Client zu streamen. Manche Ausführungsformen können vorteilhafterweise die Größe und/oder die Kosten und/oder die Ressourcenanforderungen reduzieren und können die Leistungsfähigkeit der ML-Technologie erhöhen, um die Durchführbarkeit der Ausführung einer derartigen ML-Technologie auf einer Client-Einrichtung zu verbessern.
  • Ein Ansatz zur Reduzierung der Gesamtanzahl freier Parameter in einem Netzwerk ist iteratives Pruning. Ein großes Netzwerk wird anfänglich trainiert, anschließend wird die Teilmenge von Verbindungen mit einer Größe am nächsten zu 0 entfernt. Dieser Training-Pruning-Zyklus wird wiederholt, bis das Netzwerk eine gewünschte Größe und Genauigkeit erreicht. Das iterative Pruning kann jedoch in der Praxis einige Probleme aufweisen. Erstens gibt es keine Weise, das Netzwerk zu speichern, an dem ein Pruning durchgeführt wurde, die die Reduzierung freier Parameter vollständig umsetzt. Übliche Speicherungsverfahren für dünnbesetzte Matrizen, einschließlich Formaten mit komprimierten dünnbesetzten Zeilen bzw. Spalten, mehr als verdoppeln die tatsächliche gespeicherte Größe des Netzwerks im Vergleich zu der Anzahl freier Parameter. Des Weiteren funktioniert das Pruning, indem die Tatsache ausgenutzt wird, dass die überwiegende Mehrheit der Gewichtungen in einem Netzwerk für die Endausgabe unwichtig sind. Nach dem Entfernen aller dieser Gewichtungen erzwingt ein weiteres Pruning jedoch, dass das Netzwerk zunehmend wichtige Verbindungen entfernt. Dies verursacht, dass Modelle mit starkem Pruning schnell an Genauigkeit verlieren, und beschränkt empirisch die Wirksamkeit des Pruning, wenn komprimierte Größen von wesentlich kleiner als 1/50 des ursprünglichen Modells angezielt werden.
  • HashedNetworks ähneln Gewichtungs-Clustering, mit der Ausnahme, dass die Zuweisung einer Gewichtung zu einem Cluster gemäß einer Hash-Funktion bestimmt wird (somit müssen nur die Cluster-Mittelwerte und nicht die Gewichtung-Cluster-Abbildung gespeichert werden). Grundlegend wird jedes Element der Gewichtungsmatrix zur Berechnungszeit aus einem Vektor möglicher Werte gemäß dem Hash seiner Zeilen- und Spaltenindizes gewählt. Derartige HashedNetworks erfordern die Berechnung einer Hash-Funktion für jede Gewichtung im Netzwerk, was einem Modell erhebliche Rechenkomplexität hinzufügt. Des Weiteren sind HashedNetworks auf zufällige Speicherzugriffsmuster angewiesen, die schwierig zu optimieren sind. Schließlich ist es für HashedNetworks schwierig, logische lokale Muster in Daten zu erlernen (z. B. jene, die in Sprache, einem Bild oder anderen kontinuierlichen Daten vorhanden sind), da Gewichtungen in einer Schicht zufällig gemeinsam genutzt werden.
  • HyperNetworks verwenden ein kleines „internes“ Netzwerk, um die Gewichtungen für das „äußere“ Hauptnetzwerk zu erzeugen. HyperNetworks können ihre Gewichtungen im Laufe der Zeit verändern, dennoch besitzt die Technologie auch ein erhebliches Komprimierungspotenzial. HyperNetworks können selbstkonzipierte, unterschiedliche komplexe interne Netzwerke für jede Modellklasse erfordern, was es schwieriger gestaltet, HyperNetworks ohne einen erheblichen Engineering-Aufwand bei neuen Modellarchitekturen anzuwenden.
  • Bei manchen anderen Modellen können Gewichtungsmatrizen zur Trainingszeit in kleinere Matrizen faktorisiert werden, um ein verteiltes Modelltraining zu unterstützen. Konzeptuell kann Gewichtungsfaktorisierung als ein spezieller Fall der HyperNetwork-Idee angesehen werden, bei der das „interne“ Netzwerk durch eine einfache Multiplikation der beiden Matrixfaktoren repräsentiert wird. Ein Vortrainingsschema kann verwendet werden, um die Werte von einer der faktorisierten Matrizen vor dem Training festzulegen. Diese vortrainierten Matrixwerte sind, obwohl sie nicht weiter trainiert werden müssen, nicht effizient verteilbar, was die Wirksamkeit der Technik über die Verbesserung der Trainingseffizienz auf verteilten Systemen hinaus erheblich beschränkt.
  • Manche Ausführungsformen können ein Inferenzmodell zu einer Größe komprimieren, die direkt auf der Client-Einrichtung effizient ausgeführt werden kann. Vorteilhafterweise können manche Ausführungsformen die Modellplatzanforderung reduzieren, während sie eine gute Prädiktionsgenauigkeit bereitstellen. Manche Ausführungsformen können auch die Laufzeitleistungsfähigkeit verbessern und/oder die Modellentwicklungszeit möglicherweise nicht erheblich beeinflussen. Manche Ausführungsformen können den Technologiebereich einer niedrigrangigen Faktorisierung verbessern. Manche Ausführungsformen können eine tiefe, dünne Komprimierungstechnologie bereitstellen, die ein Symmetrieproblem bei einer extrem niedrigrangigen Matrixfaktorisierung von Maschinenlernmodellparametern ansprechen (z. B. wie hierin ausführlicher erläutert). Manche Ausführungsformen können zum Beispiel eine Hilfszwischenmatrix und eine effiziente Neulayoutoperation nutzen, um eine Nichtlinearität hinzuzufügen und die Rangfaktorisierungsinferenzgenauigkeit zu verbessern. Manche Ausführungsformen können im Vergleich zu einer anderen Komprimierungstechnologie (z. B. einschließlich einer Komprimierungstechnologie, die kostspieligere Rechen- und Speicheroperationen erfordert) bei der gleichen Größe eine bessere Genauigkeit bereitstellen. Manche Ausführungsformen können auch eine verbesserte Leistungsfähigkeit und/oder eine niedrigere Energienutzung (z. B. Leistungseinsparung) bereitstellen.
  • Manche Ausführungsformen können in C++ mit TENSORFLOW-Operationen implementiert werden, die auf einer INTEL MATH KERNEL LIBRARY (MKL) aufgebaut sind, und können eine verbesserte Inferenzleistungsfähigkeit zeigen (z. B. Beschleunigungen von 2X bis 14X gegenüber unkomprimierten Modellen). Manche Ausführungsformen können eine Matrixmultiplikation von Y = X • WQxR in den Kernel-Operationen mit Y ≈ X • Transponierte(Xf•Wf) ersetzen (wie z. B. hierin ausführlicher erläutert).
  • Manche DNNs können nacheinander verkettete konzeptuelle „Schichten“ beinhalten, durch die Eingabedaten sequenziell laufen, bis schließlich eine gewünschte Ausgabe erreicht wird. Jede Schicht kann eine Matrixmultiplikation zwischen den Ausgaben der vorherigen Schicht und der Gewichtungsmatrix der gegenwärtigen Schicht berechnen. Nach der Berechnung der Matrixmultiplikation können Bias-Terme hinzugefügt werden und eine nichtlineare Aktivierungsfunktion kann an der Ausgabe angewendet werden. RNNs können für Daten mit Zeitabhängigkeit genutzt werden. Bei manchen Anwendungen kann die Gewichtungsmatrix groß sein und kann von einer Komprimierungstechnologie gemäß manchen Ausführungsformen profitieren. Obwohl es unterschiedliche Arten von RNNs gibt, beinhalten sie allgemein ein Modell, das eine Anzahl (z. B. drei oder vier) von Rechenschritten enthält, ähnlich den Schichten in einem DNN Derartige Modelle können parametereffizienter als reguläre DNNs sein, sie benötigen jedoch weiterhin große Gewichtungsmatrizen, um nützliche Genauigkeitsgrade zu erzielen, und können dementsprechend auch von einer Komprimierungstechnologie gemäß manchen Ausführungsformen profitieren. Für visuelle Daten können CNNs die Eingabedaten mit erlernten Filterbanken (z. B. Gewichtungen) durchsuchen, um gemeinsame Merkmale zu extrahieren. Jede Durchsuchung kann der oben beschriebenen Schichtoperation rechnerisch ähneln. Da die Größe von Eingabe- und Ausgabepuffern bei manchen Faltungsnetzwerken einen ungewöhnlich großen Anteil von tatsächlichen Netzwerkspeicheranforderungen repräsentiert (z. B. infolge einer großen Anzahl von Eingabe-/Ausgabekanälen), kann eine größere Komprimierungsauswirkung bei anderen Anwendungen von RNNs und Vorwärtskopplung-DNNs erzielt werden (obwohl manche CNNs von einer Komprimierung gemäß manchen Ausführungsformen profitieren können).
  • Manche Ausführungsformen können eine Komprimierung an der Gewichtungsmatrix jeder Schicht unabhängig anwenden. Eine einzelne Schicht mit einer nichtlinearen Aktivierungsfunktion a, Gewichtungen W und Biases B kann wie folgt definiert werden: Y = a ( X · W + B )
    Figure DE102019109631A1_0001
    wobei W und B erlernbare Parameter sind, die im Netzwerk gespeichert werden können. Da die Größe von B im Vergleich zu W häufig vernachlässigbar sein kann, können manche Ausführungsformen nur den W-Parameter komprimieren (obwohl z. B. manche Ausführungsformen geeignete Komprimierungstechniken auch an dem B-Parameter anwenden können). Manche Ausführungsformen können (z. B. mit akzeptablem Genauigkeitsverlust) ein beliebiges Modell komprimieren, das auf die Speicherung von großen Gewichtungsmatrizen, wie etwa W, angewiesen ist.
  • Manche herkömmlichen Rangfaktorisierungskomprimierungstechniken können funktionieren, indem der Gewichtungsparameter W mit dem Skalarprodukt von zwei Matrizen mit niedrigerem Rang ersetzt wird: W QxR X f · W f
    Figure DE102019109631A1_0002
    wobei Xf eine Q-mal-r-Matrix ist und Wf eine r-mal-R-Matrix ist, wobei r einem Rangfaktor entspricht. Während des Trainings kann das Fehlersignal zu den niedrigrangigen Faktoren Xf und Wf zurückpropagiert werden, um ihre Elemente auf dieselbe Weise zu aktualisieren, wie eine reguläre Gewichtungsmatrix trainiert wird. Die erlernten Faktoren können dann verwendet werden, um die ursprüngliche Gewichtungsmatrix an jeder Schicht während des Vorwärtstrainings oder Inferenzdurchläufe zu rekonstruieren. Faktorisierungen mit niedrigerem Rang einer Gewichtungsmatrix (z. B. insbesondere, wenn r gleich 1 ist), können sowohl von einem Gesichtspunkt der Speicherung als auch der Recheneffizienz attraktiver sein. Wenn r jedoch kleiner wird, beginnen Zeilen/Spalten der rekonstruierten Gewichtungsmatrix einander zu ähneln. Bei manchen Szenarios für r=1 kann jeder Satz (z. B. Zeile) von Gewichtungen, der durch die niedrigrangige Approximation erzeugt wird, eine teilskalierte Kopie des Gewichtungsvektors Wf sein. Diese künstliche Ähnlichkeit/Symmetrie kann die Lernleistungsfähigkeit und -kapazität eines Netzwerks erheblich beeinträchtigen.
  • Jetzt mit Bezug auf 4 kann eine Ausführungsform eines ML-Netzwerks 40 eine erste Matrix 41 (Xf) und eine zweite Matrix 42 (Wf) beinhalten. Um den negativen Einfluss zu reduzieren, den manche künstlichen Beschränkungen an der Netzwerklernkapazität besitzen können, können manche Ausführungsformen zuerst eine Rangapproximation an einer Hilfsgewichtungsmatrix 43 (WAUX) mit Größe m mal n wie folgt anwenden: W AUX X f · W f
    Figure DE102019109631A1_0003
    wobei Xf eine m-mal-r-Matrix ist und Wf eine r-mal-n-Matrix ist. Das Netzwerk 40 kann ferner eine Neulayoutoperation 44 beinhalten, um Elemente von WAUX derart in eine andere Gewichtungsmatrix 45 (WQxR) umzuverteilen, dass die künstliche Symmetrie gebrochen wird. Bei manchen Ausführungsformen kann der Umformungsprozess der Approximationsfunktion Nichtlinearität hinzufügen (z. B. ähnlich dem, wie eine Aktivierungsfunktion einer Ausgabeschicht des Netzwerks eine nichtlineare Entscheidungsgrenze hinzufügen kann). Bei manchen Ausführungsformen kann die Neulayoutfunktion abgestimmt/optimiert werden, indem die Anzahl von Spalten in der zweiten Matrix 42 (Wf) als prim bezüglich der Anzahl von Zeilen in der Gewichtungsmatrix 45 (WQxR) gewählt wird.
  • Eine beliebige geeignete nichtlineare Umverteilungstechnologie kann für die Neulayoutoperation 44 verwendet werden. Ein Beispiel für eine geeignete nichtlineare Transferfunktion kann Logik/Technologie zum zufälligen Streuen von Elementen der Hilfsgewichtungsmatrix WAUX in die Gewichtungsmatrix WQxR beinhalten. Für manche Anwendungen ist eine Streufunktion jedoch möglicherweise nicht wie gewünscht effizient (z. B. hauptsächlich infolge der beteiligten zufälligen Speicherzugriffe) und kann erfordern, dass eine Matrix von Indizes die ursprüngliche Position mit der Neulayoutposition in Beziehung setzt, was die Komprimierbarkeit beschränken kann.
  • Jetzt mit Bezug auf die 5A und 5B kann eine Ausführungsform einer anderen geeigneten nichtlinearen Transferfunktion Logik/Technologie zum Verteilen von Zeilen einer ersten Gewichtungsmatrixapproximation 50 (z. B. entsprechend WAUX 43 in 4) entlang Spalten einer zweiten Gewichtungsmatrixapproximation 52 (z. B. entsprechend WQxR 45 in 4) beinhalten. Manche Ausführungsformen können zum Beispiel Technologie zum Eingeben/Verarbeiten/Lesen von Daten aus der ersten Gewichtungsmatrixapproximation 50 in einer zeilendominierenden Reihenfolge und zum Ausgeben/Verarbeiten/Schreiben von Daten in die zweite Gewichtungsmatrixapproximation 52 in einer spaltendominierenden Reihenfolge beinhalten. Eine derartige Umformung kann insbesondere nützlich sein, wenn eine Matrixmultiplikation berechnet wird, da das abgeänderte Layout jeweils eine Spalte (oder z. B. einen Teil einer Spalte) der zweiten Gewichtungsmatrixapproximation 52 in einem Array von aufeinanderfolgenden Speicherorten konstruieren kann, während die Spalten mit unterschiedlichen Zeilen einer Eingabematrix X multipliziert werden. Dementsprechend kann das abgeänderte Layout (z. B. auch als „Neulayout“ bezeichnet) die erzeugten Elemente vollständig ausnutzen, bevor es sie verwirft. Zusätzlich dazu können manche Ausführungsformen des Neulayouts im Vergleich zu der zufälligen Streuumformung eine bessere Genauigkeit erzielen. Bei manchen Ausführungsformen können Spalten der ersten Gewichtungsmatrixapproximation 50 alternativ dazu entlang Zeilen der zweiten Gewichtungsmatrixapproximation 52 verteilt werden, um die Symmetrie zu brechen.
  • Manche Ausführungsformen einer nichtlinearen Umformungsfunktion können weiterhin zu Wiederholungsmustern in der Matrix WQxR in Form von Blöcken (z. B. Spalten) führen, die etwas anders skaliert sind. Manche Ausführungsformen können die Anzahl von Spalten in der Matrix Wf als prim bezüglich der Anzahl von Zeilen der Matrix WQxR setzen. Werte von Q und n können zum Beispiel derart ausgewählt werden, dass: LCM ( n ,  Q ) = n × Q
    Figure DE102019109631A1_0004
    wobei LCM das kleinste gemeinsame Vielfache der beiden Zahlen ist. Der LCM-Wert kann die Wiederholungshäufigkeit ähnlicher, skalierter Blöcke in der Matrix WQxR bestimmen. Die ursprüngliche Gewichtungsmatrixbreite Q kann zum Beispiel fest sein. Manche Ausführungsformen können den größten Wert für n setzen, der prim bezüglich Q ist.
  • Der Parameter n muss gemäß manchen Ausführungsformen möglicherweise auch andere Beschränkungen im Komprimierungs-Framework erfüllen. Die Matrix WAUX muss möglicherweise mindestens so viele Elemente wie die Matrix WQxR aufweisen, sodass: m × n Q × R
    Figure DE102019109631A1_0005
  • Bei manchen Ausführungsformen müssen verschiedene Parameter möglicherweise auch eine spezifizierte Komprimierungsrate einhalten. Da manche Ausführungsformen Gewichtungen auf einer Pro-Matrix-Basis komprimieren können, kann die komprimierte Größe einer beliebigen individuellen komprimierten Matrix im Netzwerk berechnet werden. Ein Komprimierungsverhältnis α für eine Gewichtungsmatrix der Form Q x R kann wie folgt bestimmt werden: α = r × ( m + n ) Q × R
    Figure DE102019109631A1_0006
    wobei sich der Nenner auf die Größe der Gewichtungsmatrix WQxR beläuft und der Zähler die Größe niedrigrangiger Faktoren der Matrix WAUX aufsummiert. Die Größe des Bias-Vektors kann aus der Berechnung ausgelassen werden (bei manchen Ausführungsformen kann die Komprimierungsrate des Bias-Vektors z. B. wie erforderlich getrennt berechnet werden). Gl. 6 kann auch andere, viel kleinere Parameter des Netzwerks ignorieren, die möglicherweise nicht komprimiert werden (wie etwa z. B. Batch-Normierungsparameter). Dementsprechend kann die tatsächliche Netzwerkgröße ein Overhead aufweisen und Gl. 6 kann die Netzwerkgröße approximieren. Manche Ausführungsformen können mehr oder die exakte Netzwerkarchitektur berücksichtigen und diese anderen Parameter zu Gl. 6 hinzufügen, um ein genaueres oder ein exaktes Verhältnis für das gesamte Netzwerk zu erhalten, oder um die anderen Parameter weiter zu komprimieren, sodass eine gewünschte Gesamtkomprimierungsrate erreicht wird.
  • Basierend auf der Ungleichung in Gl. 5 kann m in Gl. 6 mit einem niedrigeren Grenzwert für jeden Rangfaktorisierungswert (z. B. r=1, r=2 usw.) ersetzt werden, um eine quadratische Ungleichung mit einer einzigen Variablen wie folgt bereitzustellen: α r × ( ( ( Q × R ) /n ) + n ) Q × R
    Figure DE102019109631A1_0007
    für die gültige Bereiche von n leicht bestimmt werden können, falls sie existieren. Innerhalb gültiger Bereiche kann ein Minimalwert von n ausgewählt werden, der die durch die Gleichungen 4 und 5 ausgedrückten Bedingungen erfüllt. Diese Feinabstimmung kann nur einmal während der Initialisierung des Netzwerks stattfinden und der Leistungsfähigkeits-Overhead kann vernachlässigbar sein.
  • Falls ein gültiger Bereich für n in Gl. 7 nicht identifiziert werden kann, kann dies angeben, dass der räumliche Overhead der tiefen, dünnen Komprimierung des Netzwerks einen jeglichen Komprimierungsvorteil, der für die spezifische komprimierte Matrix bereitgestellt wird, übertreffen kann. Eine effektive Untergrenze der Komprimierungsrate α, die durch manche Ausführungsformen unterstützt wird, kann durch die niedrigste Komprimierungsrate α identifiziert werden, die zu einem gültigen Bereich für n führt. Die Untergrenze kann von der Größe der ursprünglichen Netzwerkgewichtungsmatrix WQxR abhängen und kann häufig weniger als 1/1000 der ursprünglichen Matrixgröße sein. Zusätzlich dazu können unterschiedliche Matrizen in einem Netzwerk unterschiedliche Formen und somit unterschiedliche Untergrenzen aufweisen. Dies ermöglicht es häufig, größere Matrizen überzukomprimieren, um gegenüber anderen Matrizen zu kompensieren, die die Untergrenze erreicht haben, wodurch eine gewünschte komprimierte Gesamtnetzwerkgröße erzielt wird.
  • Jetzt unter Bezugnahme auf 6 kann eine Ausführungsform eines Prozessflusses 60 zur Komprimierung eines Neuronalnetzwerks mit einer Eingabematrix X einer Schicht und einer dekomprimierten Gewichtungsmatrix W starten. Eine Rangfaktorapproximation kann an X und W angewendet werden, um faktorisierte Matrizen Xf und Wf bereitzustellen. Die dekomprimierte Gewichtungsmatrix W kann zum Beispiel als Kopien von Wf aufweisend angesehen werden, die auf eine spaltendominierende Weise durchgehend durch die Matrix gekachelt sind. Jede gekachelte Kopie von Wf kann durch das entsprechende Skalar in Xf skaliert werden, um die Hilfsgewichtungsmatrix WAUX bereitzustellen. Die Matrixmultiplikation kann derart berechnet werden, dass jede Zelle in der Ausgabematrix WAUX aus der Summe des Skalarprodukts zwischen jeder der Xf-skalierten Kopien von Wf in einer einzigen Spalte und den jeweiligen Slices der Eingabe X besteht. Die Hilfsgewichtungsmatrix WAUX kann dann derart transponiert werden, dass die Werte in einer zeilendominierenden Reihenfolge aus WAUX gelesen und in einer spaltendominierenden Reihenfolge in die komprimierte ungeformte Gewichtungsmatrix WQxR geschrieben werden. Schließlich kann die Ausgabe Y auf einer Eingabematrix X und der komprimierten, umgeformten Gewichtungsmatrix WQxR basieren (z. B. Y = X•WQxR).
  • Manche Ausführungsformen können vorteilhafterweise die Leistungsfähigkeit der komprimierten Matrixmultiplikation verbessern. Anstatt jede Kopie von Wf mit einem Element von Xf zu skalieren und dann das Skalarprodukt gegen das Eingabe-Slice zu berechnen (was z. B. insgesamt 2 × n Multiplikation-Additionen erfordert), können manche Ausführungsformen zuerst das Skalarprodukt zwischen den relevanten Teilen von Wf und dem Eingabe-Slice berechnen und dann den (die) resultierenden Skalarwert(e) mit den Skalarelementen von Xf skalieren (was z. B. n + 1 Multiplikation-Additionen erfordert). Im Anschluss an den vorgenannten Ansatz kann das Skalarprodukt bei gewissen Punkten in der Berechnung zwischen denselben Elementen von Wf und demselben Eingabe-Slice berechnet werden (obwohl z. B. dieses Teilprodukt später mit anderen Elementen von Xf skaliert werden kann). Manche Ausführungsformen können diese Redundanz nutzen, um das resultierende Skalarprodukt zu speichern, nachdem ein spezielles Wf-Skalarprodukt für ein spezielles Eingabe-Slice zuerst berechnet wird, und den Kernel zu konfigurieren, das gespeicherte Skalarprodukt mit allen Xf-Werten unter Verwendung des gespeicherten Skalarprodukts zu skalieren und diese Teilprodukte für alle Zellen, die dasselbe gespeicherte Skalarprodukt ausnutzen, aufzusummieren.
  • Da Q und n relativ zueinander prim sind, wird nach Einträgen von LCM(n, Q) = n*Q jede n-te Spalte von WQxR eine skalierte Version der anderen sein. Manche Ausführungsformen können diese Redundanz durch Ausklammern der Skalierungsoperationen (z. B. Multiplikation mit Xf-Elementen) ausnutzen. Eine herkömmliche Berechnung kann zum Beispiel die folgenden Gleichungen beinhalten: Y 0 = X 0 * X f 0 * W f 0 + X 1 * X f 0 * W f 1 + X 2 * X f 0 * W f 2 + X 3 * X f 1 * W f 0
    Figure DE102019109631A1_0008
    Y 3 = X 0 * X f 4 * W f 0 + X 1 * X f 4 * W f 1 + X 2 * X f 4 * W f 2 + X 3 * X f 5 * W f 0
    Figure DE102019109631A1_0009
    die etwa 11 Gleitkommaoperationen (FLOPS: Floating Points Operations) oder insgesamt etwa 22 FLOPS erfordern können. Manche Ausführungsformen können stattdessen eine Berechnung der folgenden Gleichungen beinhalten: P 0 = X 0 * W f 0 + X 1 * W f 1 + X 2 * W f 2
    Figure DE102019109631A1_0010
    P 1 = X 3 * W f 0
    Figure DE102019109631A1_0011
    Y 0 = X f 0 * P 0 + X f 1 * P 1
    Figure DE102019109631A1_0012
    Y 3 = X f 4 * P 0 + X f 5 * P 1
    Figure DE102019109631A1_0013
    wobei die Gleichungen 10 und 11 etwa 6 FLOPS, die durch Spalten gemeinsam genutzt werden, in 6 als der Schritt-n-Teil angegeben, und zusätzlich 3 FLOPS pro Spalte für insgesamt etwa 12 FLOPS erfordern können.
  • Vorteilhafterweise können manche Ausführungsformen den kostenintensivsten Teil der Matrixmultiplikation, das Skalarprodukt, erheblich kürzen, indem diese repetitiven Berechnungen wiederverwendet werden. Die Anzahl von Malen, die ein spezielles Skalarprodukt wiederverwendet werden kann, kann abnehmen, während das LCM zwischen den Q- und n-Dimensionen zunimmt (siehe z. B. Gl. 4). Zusätzlich dazu kann eine größere R-Dimension zu mehr Gesamtberechnung führen, kann aber auch mehr Möglichkeiten zur Wiederverwendung bereitstellen.
  • Jetzt mit Bezug auf die 7A und 7B zeigen Ausführungsformen von veranschaulichenden Netzwerkschichtdiagrammen eine ursprüngliche unkomprimierte Schicht 70 und eine entsprechende komprimierte Schicht 72. Für die unkomprimierte Schicht 70 kann die Gewichtungsmatrix 3 × 5 mit 15 erlernbaren Elementen, die als W00 bis W24 beschriftet sind, sein. Für die komprimierte Schicht 72 können die ursprünglichen 3 × 5 Gewichtungsmatrixelemente über ein inneres Netzwerk konstruiert werden. Anstelle von 15 erlernbaren Elementen W00 bis W24 kann die komprimierte Schicht 72 zum Beispiel nur 8 erlernbare Elemente beinhalten, die als Xf0, Xf1, Xf2, X23, Wf0, Wf1, Wf2 und Wf3 beschriftet sind. Die 8 erlernbaren Elemente in der komprimierten Schicht 72 können zusammengenommen die ursprünglichen 15 erlernbaren Elemente W00 bis W24 erstellen. Die Netzwerkverbindungen/Flüsse von X0 zu Y0, Y1, Y2 und Y3 mit ursprünglichen Gewichtungselementen können über die niedrigrangigen Faktoren Wf und Xf onthe-fly erstellt werden.
  • Manche Ausführungsformen einer tiefen, dünnen Architektur können als ein inneres Einzelschicht-Neuronalnetzwerk konfiguriert sein, das die Gewichtungen für eine größere äußere Netzwerkschicht erzeugen kann, obgleich mit anderer Technologie im Vergleich zu einem HyperNetwork. Manche Ausführungsformen des inneren Einzelschicht-Neuronalnetzwerks beinhalten möglicherweise kein Bias oder keine Aktivierungsfunktion, obwohl das innere Netzwerk weiterhin von der über die Neulayouttransformation hinzugefügten Nichtlinearität profitieren kann. Obwohl Biases in Standardnetzwerkschichten einer wichtigen Funktion dienen können, was dem Netzwerk ermöglicht, die Aktivierungsfunktion effektiv zu verschieben, können manche Ausführungsformen eines inneren Netzwerks derartige Biases auslassen. Beispielsweise können Werte in Wf und Xf um einen Mittelwert von 0 herum verteilt werden. Dementsprechend würden jegliche der Ausgabe der Transformation hinzugefügten Biases das erwartete Mittel der erzeugten Gewichtungen WQxR bestimmen. Da die ursprünglichen Netzwerkgewichtungen WQxR auch um 0 herum zentriert sein können, beeinträchtigt die Entfernung der Biases aus dem inneren Netzwerk nicht die Genauigkeit. Da manche Ausführungsformen möglicherweise keine Aktivierungsfunktionen am inneren Netzwerk aufweisen, stellen Biases zusätzlich dazu keinen Funktionsverschiebungsvorteil bereit. Aktivierungsfunktionen können andererseits Zusammendrückeffekte aufweisen, die den Bereich von Werten, die für die rekonstruierte Matrix WQxR erzeugt werden, beschränken (z. B. ein neuer Satz künstlicher Beschränkungen, der sich auf die Lernkapazität des ursprünglichen Netzwerks auswirken kann).
  • Ausführungsformen eines inneren Einzelschicht-Netzwerks können viele Vorteile liefern, einschließlich einer sehr geringen Engineering-Anforderung und besserer Recheneffizienz zur Laufzeit. Vorteilhafterweise können manche Ausführungsformen eines inneren Einzelschicht-Netzwerks eine vergleichbare Genauigkeit wie ein tieferes inneres Netzwerk bereitstellen. Komprimierende ML-Modelle, die auf Speicherungs-, Rechen- und leistungsbeschränkten Einrichtungen auszuführen sind, werden schnell ein Hauptbereich der Forschung und des Industrieinteresses. Bestehende Komprimierungstechnologien mühen sich möglicherweise ab, Modelle unter 1 - 2 % ihrer ursprünglichen Größen zu komprimieren, und/oder können erheblich zu der Rechenkomplexität der Modelle beitragen. Manche Ausführungsformen können vorteilhafterweise eine Komprimierungstechnologie bereitstellen, die die niedrigrangige Matrixfaktorisierung erheblich verbessert.
  • 8A stellt eine Netzwerkkomprimierungsvorrichtung 132 (132a-132b) dar, die einen oder mehrere Aspekte des Verfahrens 30 (3) und/oder des Prozessflusses 60 (6) implementieren kann. Die Netzwerkkomprimierungsvorrichtung 132, die Logikanweisungen, konfigurierbare Logik, Hardwarelogik mit fester Funktionalität beinhalten kann, kann leicht für das Entscheidungsnetzwerk 13 oder die Logik 14 (1) und/oder das ML-Netzwerk 40 (4), wie schon besprochen, ersetzt werden. Eine Rangfaktoranwendungsvorrichtung 132a kann Technologie zum Anwenden einer niedrigrangigen Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks beinhalten, um eine erste Gewichtungsmatrixapproximation zu bestimmen. Eine Matrixumformungsvorrichtung 132b kann Technologie zum Umformen der ersten Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation beinhalten. Die Matrixumformungsvorrichtung 132b kann zum Beispiel dazu ausgelegt sein, die erste Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umzuformen, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen. Bei manchen Ausführungsformen kann die Matrixumformungsvorrichtung 132b dazu ausgelegt sein, Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation zu streuen. Bei manchen Ausführungsformen kann die Matrixumformungsvorrichtung 132b alternativ oder zusätzlich dazu ausgelegt sein, das Layout von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation abzuändern. Die Matrixumformungsvorrichtung 132b kann zum Beispiel dazu ausgelegt sein, Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge zu lesen und Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge zu schreiben (oder z. B. umgekehrt). Bei beliebigen der Ausführungsformen hierin kann das Entscheidungsnetzwerk ein CNN und/oder ein DNN und/oder ein RNN umfassen.
  • Jetzt mit Bezug auf 8B ist eine Netzwerkkomprimierungsvorrichtung 134 (134a, 134b) dargestellt, bei der Logik 134b (z. B. ein Transistor-Array oder andere integrierte Schaltungs-/IC-Komponenten) mit einem Substrat 134a (z. B. Silizium, Saphir, Galliumarsenid) gekoppelt ist. Die Logik 134b kann allgemein einen oder mehrere Aspekte des Verfahrens 30 (3) und/oder des Prozessflusses 60 (6) implementieren. Somit kann die Logik 134b eine niedrigrangige Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks anwenden, um eine erste Gewichtungsmatrixapproximation zu bestimmen, und die erste Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation umformen. Die Logik 134b kann zum Beispiel dazu ausgelegt sein, die erste Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umzuformen, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen. Bei manchen Ausführungsformen kann die Logik 134b dazu ausgelegt sein, Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation zu streuen. Bei manchen Ausführungsformen kann die Logik 134b alternativ oder zusätzlich dazu ausgelegt sein, das Layout von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation abzuändern. Die Logik 134b kann zum Beispiel dazu ausgelegt sein, Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reichenfolge zu lesen und Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge zu schreiben (oder z. B. umgekehrt). Bei beliebigen der Ausführungsformen hierin kann das Entscheidungsnetzwerk ein CNN und/oder ein DNN und/oder ein RNN umfassen. Bei einem Beispiel ist die Vorrichtung 134 ein Halbleiter-Die, ein Chip und/oder ein Package.
  • 9 veranschaulicht einen Prozessorkern 200 gemäß einer Ausführungsform. Der Prozessorkern 200 kann der Kern für einen beliebigen Typ von Prozessor sein, wie etwa ein Mikroprozessor, ein eingebetteter Prozessor, ein Digitalsignalprozessor (DSP), ein Netzwerkprozessor oder eine andere Einrichtung zur Ausführung von Code. Obwohl in 9 nur ein Prozessorkern 200 veranschaulicht ist, kann ein Verarbeitungselement alternativ dazu mehr als einen des in 9 veranschaulichten Prozessorkerns 200 beinhalten. Der Prozessorkern 200 kann ein Einzel-Thread-Kern sein oder für mindestens eine Ausführungsform kann der Prozessorkern 200 in dem Sinne multithreaded sein, dass er mehr als einen Hardware-Thread-Kontext (oder „Logikprozessor“) pro Kern beinhalten kann.
  • 9 veranschaulicht auch einen Speicher 270, der mit dem Prozessorkern 200 gekoppelt ist. Der Speicher 270 kann ein beliebiger einer breiten Vielfalt von Speichern sein (einschließlich verschiedener Schichten von Speicherhierarchie), wie Fachleuten bekannt oder anderweitig verfügbar sind. Der Speicher 270 kann eine oder mehrere Anweisungen von Code 213 beinhalten, die durch den Prozessorkern 200 auszuführen sind, wobei der Code 213 einen oder mehrere Aspekte des Verfahrens 30 (3) und/oder des Prozessflusses 60 (6) implementieren kann, wie schon besprochen. Der Prozessorkern 200 folgt einer Programmsequenz von Anweisungen, die durch den Code 213 angegeben werden. Jede Anweisung kann in einen Frontend-Teil 210 eintreten und durch einen oder mehrere Decodierer 220 verarbeitet werden. Der Decodierer 220 kann eine Mikrooperation, wie etwa eine Mikrooperation mit fester Breite in einem vordefinierten Format, als seine Ausgabe erzeugen oder kann andere Anweisungen, Mikroanweisungen oder Steuersignale erzeugen, die die ursprüngliche Codeanweisung widerspiegeln. Der veranschaulichte Frontend-Teil 210 beinhaltet auch eine Registerumbenennungslogik 225 und eine Scheduling-Logik 230, die allgemein Ressourcen zuweisen und die Operation entsprechend der Umwandlungsanweisung zur Ausführung in eine Warteschlange setzen.
  • Der Prozessorkern 200 ist eine Ausführungslogik 250 mit einem Satz von Ausführungseinheiten 255-1 bis 255-N enthaltend dargestellt. Manche Ausführungsformen können eine Anzahl von Ausführungseinheiten beinhalten, die spezifischen Funktionen oder Sätzen von Funktionen dediziert sind. Andere Ausführungsformen können nur eine Ausführungseinheit oder eine Ausführungseinheit, die eine spezielle Funktion durchführen kann, beinhalten. Die veranschaulichte Ausführungslogik 250 führt die durch Codeanweisungen spezifizierten Operationen durch.
  • Nach Abschluss der Ausführung der durch die Codeanweisungen spezifizierten Operationen beendet eine Backend-Logik 260 die Anweisungen des Codes 213. Bei einer Ausführungsform ermöglicht der Prozessorkern 200 eine nicht reihenfolgegetreue Ausführung, erfordert aber eine reihenfolgegetreue Einstellung von Anweisungen. Eine Rückzugslogik 265 kann eine Vielfalt von Formen annehmen, wie Fachleuten bekannt (z. B. Umordnungspuffer oder dergleichen). Auf diese Art und Weise wird der Prozessorkern 200 während der Ausführung des Codes 213 transformiert, zumindest hinsichtlich der durch den Decodierer erzeugten Ausgabe, der durch die Registerumbenennungslogik 225 genutzten Hardwareregister und Tabellen, und beliebiger (nicht dargestellter) Register, die durch die Ausführungslogik 250 modifiziert werden.
  • Obwohl nicht in 9 veranschaulicht, kann ein Verarbeitungselement andere On-Chip-Elemente mit dem Prozessorkern 200 beinhalten. Ein Verarbeitungselement kann zum Beispiel Speichersteuerlogik zusammen mit dem Prozessorkern 200 beinhalten. Das Verarbeitungselement kann E/A-Steuerlogik beinhalten und/oder kann E/A-Steuerlogik beinhalten, die mit Speichersteuerlogik integriert ist. Das Verarbeitungselement kann auch einen oder mehrerer Caches beinhalten.
  • Jetzt mit Bezug auf 10 ist ein Blockdiagramm einer Ausführungsform eines Systems 1000 gemäß einer Ausführungsform dargestellt. In 10 ist ein Multiprozessorsystem 1000 dargestellt, das ein erstes Verarbeitungselement 1070 und ein zweites Verarbeitungselement 1080 beinhaltet. Obwohl zwei Verarbeitungselemente 1070 und 1080 dargestellt sind, versteht sich, dass eine Ausführungsform des Systems 1000 auch nur ein derartiges Verarbeitungselement beinhalten kann.
  • Das System 1000 ist als ein Punkt-zu-Punkt-Interconnect-System dargestellt, wobei das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 über ein Punkt-zu-Punkt-Interconnect 1050 gekoppelt sind. Es versteht sich, dass beliebige oder alle der in 10 veranschaulichten Interconnects als ein Multidrop-Bus anstelle eines Punkt-zu-Punkt-Interconnects implementiert werden können.
  • Wie in 10 dargestellt, können sowohl das Verarbeitungselement 1070 als auch 1080 Mehrkernprozessoren sein, einschließlich eines ersten und zweiten Prozessorkerns (d. h. Prozessorkerne 1074a und 1074b und Prozessorkerne 1084a und 1084b). Derartige Kerne 1074a, 1074b, 1084a, 1084b können dazu ausgelegt sein, Anweisungscode auf eine Art und Weise auszuführen, die der oben in Verbindung mit 9 besprochenen ähnelt.
  • Jedes Verarbeitungselement 1070, 1080 kann mindestens einen gemeinsam genutzten Cache 1896a, 1896b (z. B. statischen Direktzugriffsspeicher/SRAM) beinhalten. Der gemeinsam genutzte Cache 1896a, 1896b kann Daten (z. B. Objekte, Anweisungen) speichern, die durch eine oder mehrere Komponenten des Prozessors genutzt werden, wie etwa die Kernel 1074a, 1074b bzw. 1084a, 1084b. Der gemeinsam genutzte Cache 1896a, 1896b kann zum Beispiel Daten, die in einem Speicher 1032, 1034 gespeichert sind, für einen schnelleren Zugriff durch Komponenten des Prozessors lokal cachen. Bei einer oder mehreren Ausführungsformen kann der gemeinsam genutzte Cache 1896a, 1896b einen oder mehrere Caches mittlerer Ebene, wie etwa Ebene 2 (L2), Ebene 3 (L3), Ebene 4 (L4), und anderer Cacheebenen, einen Cache letzter Ebene (LLC: Last Level Cache) und/oder Kombinationen davon beinhalten.
  • Obwohl nur mit zwei Verarbeitungselementen 1070, 1080 dargestellt, versteht sich, dass der Schutzumfang der Ausführungsformen nicht derartig beschränkt ist. Bei anderen Ausführungsformen können ein oder mehrere zusätzliche Verarbeitungselemente in einem gegebenen Prozessor vorhanden sein. Alternativ dazu können ein oder mehrere Verarbeitungselemente 1070, 1080 ein Element außer einem Prozessor sein, wie etwa ein Beschleuniger oder ein feldprogrammierbares Gate-Array. Ein oder mehrere zusätzliche Verarbeitungselemente können zum Beispiel einen oder mehrere zusätzliche Prozessoren, die dieselben wie ein erster Prozessor 1070 sind, einen oder mehrere zusätzliche Prozessoren, die heterogen oder asymmetrisch zu einem ersten Prozessor 1070 sind, Beschleuniger (wie etwa z. B. Grafikbeschleuniger oder Digitalsignalverarbeitungs(DSP)-Einheiten), feldprogrammierbare Gate-Arrays oder ein beliebiges anderes Verarbeitungselement beinhalten. Es kann eine Vielfalt von Unterschieden zwischen den Verarbeitungselementen 1070, 1080 hinsichtlich eines Spektrums von Leistungsmetriken geben, einschließlich Architektur-, Mikroarchitektur-, Wärme-, Leistungsverbrauchscharakteristiken und dergleichen. Diese Unterschiede können sich selbst im Endeffekt als Asymmetrie und Heterogenität zwischen den Verarbeitungselementen 1070, 1080 manifestieren. Für mindestens eine Ausführungsform können sich die verschiedenen Verarbeitungselemente und 1070, 1080 in demselben Die-Package befinden.
  • Das erste Verarbeitungselement 1070 kann ferner Speichersteuerlogik (MC) 1072 und Punkt-zu-Punkt(P-P)-Schnittstellen 1076 und 1078 beinhalten. Gleichermaßen kann das zweite Verarbeitungselement 1080 eine MC 1082 und P-P-Schnittstellen 1086 und 1088 beinhalten. Wie in 10 dargestellt, koppeln die MCs 1072 und 1082 die Prozessoren mit jeweiligen Speichern, nämlich einem Speicher 1032 und einem Speicher 1034, die Teile eines Hauptspeichers sein können, der lokal an den jeweiligen Prozessoren angeschlossen ist. Obwohl die MC 1072 und 1082 als in die Verarbeitungselemente 1070, 1080 integriert veranschaulicht ist, kann die MC-Logik für alternative Ausführungsformen eine diskrete Logik außerhalb der Verarbeitungselemente 1070, 1080 sein, anstatt darin integriert zu sein.
  • Das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 können über P-P-Interconnects 1076 bzw. 1086 mit einem E/A-Untersystem 1090 gekoppelt sein. Wie in 10 dargestellt, beinhaltet das E/A-Untersystem 1090 eine TEE 1097 (z. B. Sicherheitssteuerung) und P-P-Schnittstellen 1094 und 1098. Des Weiteren beinhaltet das E/A-Untersystem 1090 eine Schnittstelle 1092, um das E/A-Untersystem 1090 mit einer Hochleistungs-Grafik-Engine 1038 zu koppeln. Bei einer Ausführungsform kann der Bus 1049 verwendet werden, um die Grafik-Engine 1038 mit dem E/A-Untersystem 1090 zu koppeln. Alternativ dazu kann ein Punkt-zu-Punkt-Interconnect diese Komponenten koppeln.
  • Im Gegenzug kann das E/A-Untersystem 1090 über eine Schnittstelle 1096 mit einem ersten Bus 1016 gekoppelt sein. Bei einer Ausführungsform kann der erste Bus 1016 ein PCI(Peripheral Component Interconnect)-Bus oder ein Bus, wie etwa ein PCI-Express-Bus oder ein anderer Drittgeneration-E/A-Interconnect-Bus sein, obwohl der Schutzumfang der Ausführungsformen nicht derartig beschränkt ist.
  • Wie in 10 dargestellt, können verschiedene E/A-Einrichtungen 1014 (z. B. Kameras, Sensoren) mit dem ersten Bus 116 gekoppelt sein, zusammen mit einer Busbrücke 1018, die den ersten Bus 1016 mit einem zweiten Bus 1020 koppeln kann. Bei einer Ausführungsform kann der zweite Bus 1020 ein LPC(Low Pin Count)-Bus sein. Verschiedene Einrichtungen können mit dem zweiten Bus 1020 gekoppelt sein, einschließlich zum Beispiel bei einer Ausführungsform einer Tastatur/Maus 1012, Netzwerksteuerungen/Kommunikationseinrichtung(en) 1026 (die im Gegenzug in Kommunikation mit einem Computernetzwerk stehen können) und einer Datenspeicherungseinheit 1019, wie etwa einer Festplatte oder anderer Massenspeicherungseinrichtung, die Code 1030 beinhalten kann. Der Code 1030 kann Anweisungen zum Durchführen von Ausführungsformen eines oder mehrerer der oben beschriebenen Verfahren beinhalten. Somit kann der veranschaulichte Code 1030 einen oder mehrere Aspekte des Verfahrens 30 (3) und/oder des Prozessflusses 60 (6) implementieren, wie schon besprochen, und kann dem Code 213 (9) ähneln, wie schon besprochen. Des Weiteren kann eine Audio-E/A 1024 mit dem zweiten Bus 1020 gekoppelt sein.
  • Es ist anzumerken, dass andere Ausführungsformen in Betracht gezogen werden. Anstatt der Punkt-zu-Punkt-Architektur von 10 kann ein System zum Beispiel einen Multidrop-Bus oder eine andere derartige Kommunikationstopologie implementieren.
  • Zusätzliche Anmerkungen und Beispiele:
  • Beispiel 1 kann ein elektronisches Verarbeitungssystem beinhalten, das einen Prozessor, einen Speicher, der kommunikativ mit dem Prozessor gekoppelt ist, und ein Entscheidungsnetzwerk, das kommunikativ mit dem Prozessor und dem Speicher gekoppelt ist, umfasst, wobei das Entscheidungsnetzwerk Logik beinhaltet, um eine niedrigrangige Faktorisierung an einer Gewichtungsmatrix des Entscheidungsnetzwerks anzuwenden, um eine erste Gewichtungsmatrixapproximation zu bestimmen, die erste Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation umzuformen und das Entscheidungsnetzwerk basierend auf der zweiten Gewichtungsmatrixapproximation zu komprimieren.
  • Beispiel 2 kann das System des Beispiels 1 beinhalten, wobei die Logik ferner die erste Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umformen soll, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen.
  • Beispiel 3 kann das System des Beispiels 2 beinhalten, wobei die Logik ferner Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation streuen soll.
  • Beispiel 4 kann das System des Beispiels 2 beinhalten, wobei die Logik ferner das Layout von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation abändern soll.
  • Beispiel 5 kann das System des Beispiels 4 beinhalten, wobei die Logik ferner Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge lesen und Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge schreiben soll.
  • Beispiel 6 kann das System eines der Beispiele 1 bis 5 beinhalten, wobei das Entscheidungsnetzwerk ein Faltungs-Neuronalnetzwerk und/oder ein tiefes Neuronalnetzwerk und/oder ein rekurrentes Neuronalnetzwerk umfasst.
  • Beispiel 7 kann eine Halbleiter-Package-Vorrichtung beinhalten, die ein oder mehrere Substrate und Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, umfasst, wobei die Logik zumindest teilweise in einer konfigurierbaren Logik und/oder Hardwarelogik mit fester Funktionalität implementiert wird, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik eine niedrigrangige Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks anwenden soll, um eine erste Gewichtungsmatrixapproximation zu bestimmen, und die erste Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation umformen soll.
  • Beispiel 8 kann die Vorrichtung des Beispiels 7 beinhalten, wobei die Logik ferner die erste Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umformen soll, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen.
  • Beispiel 9 kann die Vorrichtung des Beispiels 8 beinhalten, wobei die Logik ferner Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation streuen soll.
  • Beispiel 10 kann die Vorrichtung des Beispiels 8 beinhalten, wobei die Logik ferner das Layout von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation abändern soll.
  • Beispiel 11 kann die Vorrichtung des Beispiels 10 beinhalten, wobei die Logik ferner Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge lesen und Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge schreiben soll.
  • Beispiel 12 kann die Vorrichtung eines der Beispiele 7 bis 11 beinhalten, wobei das Entscheidungsnetzwerk ein Faltungs-Neuronalnetzwerk und/oder ein tiefes Neuronalnetzwerk und/oder ein rekurrentes Neuronalnetzwerk umfasst.
  • Beispiel 13 kann die Vorrichtung eines der Beispiele 7 bis 12 beinhalten, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalgebiete beinhaltet, die in dem einen oder den mehreren Substraten positioniert sind.
  • Beispiel 14 kann ein Verfahren zur Komprimierung einer Gewichtungsmatrix beinhalten, umfassend Anwenden einer niedrigrangigen Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks, um eine erste Gewichtungsmatrixapproximation zu bestimmen, und Umformen der ersten Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation.
  • Beispiel 15 kann das Verfahren des Beispiels 14 beinhalten, ferner umfassend Umformen der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen.
  • Beispiel 16 kann das Verfahren des Beispiels 15 beinhalten, ferner umfassend Streuen von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation.
  • Beispiel 17 kann das Verfahren des Beispiels 15 beinhalten, ferner umfassend Abändern des Layouts von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation.
  • Beispiel 18 kann das Verfahren des Beispiels 17 beinhalten, ferner umfassend Lesen von Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge und Schreiben von Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge.
  • Beispiel 19 kann das Verfahren eines der Beispiele 14 bis 18 beinhalten, wobei das Entscheidungsnetzwerk ein Faltungs-Neuronalnetzwerk und/oder ein tiefes Neuronalnetzwerk und/oder ein rekurrentes Neuronalnetzwerk umfasst.
  • Beispiel 20 kann mindestens ein computerlesbares Speicherungsmedium beinhalten, das einen Anweisungssatz umfasst, der bei Ausführung durch eine Recheneinrichtung bewirkt, dass die Recheneinrichtung eine niedrigrangige Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks anwendet, um eine erste Gewichtungsmatrixapproximation zu bestimmen, und die erste Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation umformt.
  • Beispiel 21 kann das mindestens eine computerlesbare Speicherungsmedium des Beispiels 20 beinhalten, das einen weiteren Anweisungssatz umfasst, der bei Ausführung durch die Recheneinrichtung bewirkt, dass die Recheneinrichtung die erste Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umformt, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen.
  • Beispiel 22 kann das mindestens eine computerlesbare Speicherungsmedium des Beispiels 21 beinhalten, das einen weiteren Anweisungssatz umfasst, der bei Ausführung durch die Recheneinrichtung bewirkt, dass die Recheneinrichtung Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation streut.
  • Beispiel 23 kann das mindestens eine computerlesbare Speicherungsmedium des Beispiels 21 beinhalten, das einen weiteren Anweisungssatz umfasst, der bei Ausführung durch die Recheneinrichtung bewirkt, dass die Recheneinrichtung das Layout von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation abändert.
  • Beispiel 24 kann das mindestens eine computerlesbare Speicherungsmedium des Beispiels 23 beinhalten, das einen weiteren Anweisungssatz umfasst, der bei Ausführung durch die Recheneinrichtung bewirkt, dass die Recheneinrichtung Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge liest und Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge schreibt.
  • Beispiel 25 kann das mindestens eine computerlesbare Speicherungsmedium eines der Beispiele 20 bis 24 beinhalten, wobei das Entscheidungsnetzwerk ein Faltungs-Neuronalnetzwerk und/oder ein tiefes Neuronalnetzwerk und/oder ein rekurrentes Neuronalnetzwerk umfasst.
  • Beispiel 26 kann eine Matrixkomprimierungsvorrichtung beinhalten, die Mittel zum Anwenden einer niedrigrangigen Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks, um eine erste Gewichtungsmatrixapproximation zu bestimmen, und Mittel zum Umformen der ersten Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation umfasst.
  • Beispiel 27 kann die Vorrichtung des Beispiels 26 beinhalten, die ferner Mittel zum Umformen der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umfasst, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen.
  • Beispiel 28 kann die Vorrichtung des Beispiels 27 beinhalten, die ferner Mittel zum Streuen von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umfasst.
  • Beispiel 29 kann die Vorrichtung des Beispiels 27 beinhalten, die ferner Mittel zum Abändern des Layouts von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation umfasst.
  • Beispiel 30 kann die Vorrichtung des Beispiels 29 beinhalten, die ferner Mittel zum Lesen von Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge und Mittel zum Schreiben von Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge umfasst.
  • Beispiel 31 kann die Vorrichtung eines der Beispiele 26 bis 30 beinhalten, wobei das Entscheidungsnetzwerk ein Faltungs-Neuronalnetzwerk und/oder ein tiefes Neuronalnetzwerk und/oder ein rekurrentes Neuronalnetzwerk umfasst.
  • Ausführungsformen sind zur Verwendung mit allen Arten von Integrierte-Halbleiterschaltung(„IC“)-Chips anwendbar. Beispiele für diese IC-Chips beinhalten unter anderem Prozessoren, Steuerungen, Chipsatzkomponenten, programmierbare Logik-Arrays (PLAs), Speicherchips, Netzwerkchips, Systemeauf-Chip (SoCs), SSD/NAND-Steuerung-ASICs und dergleichen. Zusätzlich dazu werden in manchen der Zeichnungen Signalleiterbahnen mit Linien repräsentiert. Manche können anders sein, um mehrere einzelne Signalpfade anzugeben, können eine Nummernbeschriftung aufweisen, um eine Anzahl von einzelnen Signalpfaden anzugeben, und/oder können Pfeile an einem oder mehreren Enden aufweisen, um eine Hauptinformationsflussrichtung anzugeben. Dies sollte jedoch nicht auf eine beschränkende Art und Weise aufgefasst werden. Stattdessen können derartige hinzugefügte Einzelheiten in Verbindung mit einem oder mehreren Ausführungsbeispielen verwendet werden, um ein leichteres Verständnis einer Schaltung zu ermöglichen. Jegliche repräsentierten Signalleitungen, egal, ob sie zusätzliche Informationen aufweisen oder nicht, können tatsächlich ein oder mehrere Signale umfassen, die in mehreren Richtungen laufen können und mit einer beliebigen geeigneten Art von Signalschema implementiert werden können, z. B. digitalen oder analogen Leitungen, die mit Differenzpaaren, Glasfaserleitungen und/oder asymmetrischen Leitungen implementiert werden.
  • Beispielhafte Größen/Modelle/Werte/Bereiche können gegeben worden sein, obwohl Ausführungsformen nicht auf dieselben beschränkt sind. Da Fertigungstechniken (z. B. Photolithographie) im Laufe der Zeit ausreifen, wird erwartet, dass Einrichtungen kleinerer Größe gefertigt werden könnten. Zusätzlich dazu sind wohlbekannte Leistungs-/Masseverbindungen mit IC-Chips und anderen Komponenten in den Figuren zur Vereinfachung der Veranschaulichung und Besprechung, und um gewisse Aspekte der Ausführungsformen nicht zu verundeutlichen, möglicherweise dargestellt oder nicht. Des Weiteren können Anordnungen in Blockdiagrammform dargestellt werden, um eine Verundeutlichung von Ausführungsformen zu vermeiden, und auch angesichts der Tatsache, dass Einzelheiten bezüglich der Implementierung derartiger Blockdiagrammanordnungen stark von der Plattform abhängen, in der die Ausführungsform zu implementieren ist, d. h. derartige Einzelheiten sollten gut im Bereich eines Fachmanns liegen. Wenn spezifische Einzelheiten (z. B. Schaltungen) dargelegt sind, um Ausführungsbeispiele zu beschreiben, sollte einem Fachmann ersichtlich werden, dass Ausführungsformen ohne oder mit einer Variation dieser spezifischen Einzelheiten umgesetzt werden können. Die Beschreibung wird somit als veranschaulichend anstatt beschränkend betrachtet.
  • Der Ausdruck „gekoppelt“ kann hierin verwendet werden, um sich auf eine beliebige Art von Beziehung, direkt oder indirekt, zwischen den Komponenten in Frage zu beziehen, und kann bei elektrischen, mechanischen, fluiden, optischen, elektromagnetischen, elektromechanischen oder anderen Verbindungen angewendet werden. Zusätzlich dazu können die Ausdrücke „erster“, „zweiter“ usw. hierin nur verwendet werden, um die Besprechung zu erleichtern, und führen keine spezielle zeitliche oder chronologische Bedeutung, insofern nichts anderes angegeben ist.
  • Wie in dieser Anmeldung und in den Ansprüchen verwendet, kann eine Liste von Gegenständen, die durch den Ausdruck „ein oder mehr von“ verbunden sind, eine beliebige Kombination der aufgelisteten Ausdrücke bedeuten. Die Phrase „ein oder mehr von A, B und C“ und die Phrase „ein oder mehr von A, B oder C“ können zum Beispiel jeweils A; B; C; A und B; A und C; B und C oder A, B und C bedeuten.
  • Fachleute werden aus der vorstehenden Beschreibung verstehen, dass die umfangreichen Techniken der Ausführungsformen in einer Vielfalt von Formen implementiert werden können. Obwohl die Ausführungsformen in Verbindung mit speziellen Beispielen von diesen beschrieben worden sind, sollte der wahre Schutzumfang der Ausführungsformen daher nicht derartig beschränkt werden, da dem Fachmann andere Modifikationen bei einer Durchsicht der Zeichnungen, der Spezifikation und der folgenden Ansprüche ersichtlich werden.

Claims (25)

  1. Elektronisches Verarbeitungssystem, umfassend: einen Prozessor; einen Speicher, der kommunikativ mit dem Prozessor gekoppelt ist; und ein Entscheidungsnetzwerk, das kommunikativ mit dem Prozessor und dem Speicher gekoppelt ist, wobei das Entscheidungsnetzwerk Logik für Folgendes beinhaltet: Anwenden einer niedrigrangigen Faktorisierung an einer Gewichtungsmatrix des Entscheidungsnetzwerks, um eine erste Gewichtungsmatrixapproximation zu bestimmen, Umformen der ersten Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation, und Komprimieren des Entscheidungsnetzwerks basierend auf der zweiten Gewichtungsmatrixapproximation.
  2. System nach Anspruch 1, wobei die Logik ferner ausgelegt ist zum: Umformen der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen.
  3. System nach Anspruch 2, wobei die Logik ferner ausgelegt ist zum: Streuen von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation.
  4. System nach Anspruch 2, wobei die Logik ferner ausgelegt ist zum: Abändern des Layouts von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation.
  5. System nach Anspruch 4, wobei die Logik ferner ausgelegt ist zum: Lesen von Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge; und Schreiben von Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge.
  6. System nach einem der Ansprüche 1 bis 5, wobei das Entscheidungsnetzwerk ein Faltungs-Neuronalnetzwerk und/oder ein tiefes Neuronalnetzwerk und/oder ein rekurrentes Neuronalnetzwerk umfasst.
  7. Halbleiter-Package-Vorrichtung, umfassend: ein oder mehrere Substrate; und Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, wobei die Logik zumindest teilweise in einer konfigurierbaren Logik und/oder einer Hardwarelogik mit fester Funktionalität implementiert wird, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik ausgelegt ist zum: Anwenden einer niedrigrangigen Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks, um eine erste Gewichtungsmatrixapproximation zu bestimmen, Umformen der ersten Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation, Komprimieren des Entscheidungsnetzwerks basierend auf der zweiten Gewichtungsmatrixapproximation.
  8. Vorrichtung nach Anspruch 7, wobei die Logik ferner ausgelegt ist zum: Umformen der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen.
  9. Vorrichtung nach Anspruch 8, wobei die Logik ferner ausgelegt ist zum: Streuen von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation.
  10. Vorrichtung nach Anspruch 8, wobei die Logik ferner ausgelegt ist zum: Abändern des Layouts von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation.
  11. Vorrichtung nach Anspruch 10, wobei die Logik ferner ausgelegt ist zum: Lesen von Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge; und Schreiben von Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge.
  12. Vorrichtung nach einem der Ansprüche 7 bis 11, wobei das Entscheidungsnetzwerk ein Faltungs-Neuronalnetzwerk und/oder ein tiefes Neuronalnetzwerk und/oder ein rekurrentes Neuronalnetzwerk umfasst.
  13. Vorrichtung nach einem der Ansprüche 7 bis 12, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalgebiete beinhaltet, die in dem einen oder den mehreren Substraten positioniert sind.
  14. Verfahren zur Komprimierung einer Gewichtungsmatrix, umfassend: Anwenden einer niedrigrangigen Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks, um eine erste Gewichtungsmatrixapproximation zu bestimmen; Umformen der ersten Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation; und Komprimieren des Entscheidungsnetzwerks basierend auf der zweiten Gewichtungsmatrixapproximation.
  15. Verfahren nach Anspruch 14, ferner umfassend: Umformen der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen.
  16. Verfahren nach Anspruch 15, ferner umfassend: Streuen von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation.
  17. Verfahren nach Anspruch 15, ferner umfassend: Abändern des Layouts von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation.
  18. Verfahren nach Anspruch 17, ferner umfassend: Lesen von Daten von der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge; und Schreiben von Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge.
  19. Verfahren nach einem der Ansprüche 14 bis 18, wobei das Entscheidungsnetzwerk eine Faltungs-Neuronalnetzwerk und/oder ein tiefes Neuronalnetzwerk und/oder ein rekurrentes Neuronalnetzwerk umfasst.
  20. Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien, die einen Anweisungssatz umfassen, der bei Ausführung durch eine Recheneinrichtung bewirkt, dass die Recheneinrichtung Folgendes ausführt: Anwenden einer niedrigrangigen Faktorisierung an einer Gewichtungsmatrix eines Entscheidungsnetzwerks, um eine erste Gewichtungsmatrixapproximation zu bestimmen; Umformen der ersten Gewichtungsmatrixapproximation in eine zweite Gewichtungsmatrixapproximation; und Komprimieren des Entscheidungsnetzwerks basierend auf der zweiten Gewichtungsmatrixapproximation.
  21. Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien nach Anspruch 20, die einen Anweisungssatz umfassen, der bei Ausführung durch eine Recheneinrichtung bewirkt, dass die Recheneinrichtung Folgendes ausführt: Umformen der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation, um der zweiten Gewichtungsmatrixapproximation Nichtlinearität hinzuzufügen.
  22. Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien nach Anspruch 21, die einen Anweisungssatz umfassen, der bei Ausführung durch eine Recheneinrichtung bewirkt, dass die Recheneinrichtung Folgendes ausführt: Streuen von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation.
  23. Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien nach Anspruch 21, die einen Anweisungssatz umfassen, der bei Ausführung durch eine Recheneinrichtung bewirkt, dass die Recheneinrichtung Folgendes ausführt: Abändern des Layouts von Daten von der ersten Gewichtungsmatrixapproximation in die zweite Gewichtungsmatrixapproximation.
  24. Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien nach Anspruch 23, die einen Anweisungssatz umfassen, der bei Ausführung durch eine Recheneinrichtung bewirkt, dass die Recheneinrichtung Folgendes ausführt: Lesen von Daten aus der ersten Gewichtungsmatrixapproximation in einer zeilendominierenden Reihenfolge; und Schreiben von Daten in die zweite Gewichtungsmatrixapproximation in einer spaltendominierenden Reihenfolge.
  25. Computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien nach einem der Ansprüche 20 bis 24, wobei das Entscheidungsnetzwerk ein Faltungs-Neuronalnetzwerk und/oder ein tiefes Neuronalnetzwerk und/oder ein rekurrentes Neuronalnetzwerk umfasst.
DE102019109631.6A 2018-05-11 2019-04-11 Tiefes komprimiertes netzwerk Withdrawn DE102019109631A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/977,477 US11429849B2 (en) 2018-05-11 2018-05-11 Deep compressed network
US15/977,477 2018-05-11

Publications (1)

Publication Number Publication Date
DE102019109631A1 true DE102019109631A1 (de) 2019-11-14

Family

ID=65229671

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019109631.6A Withdrawn DE102019109631A1 (de) 2018-05-11 2019-04-11 Tiefes komprimiertes netzwerk

Country Status (3)

Country Link
US (1) US11429849B2 (de)
CN (1) CN110472724A (de)
DE (1) DE102019109631A1 (de)

Families Citing this family (5)

* 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
KR20200027080A (ko) * 2018-08-28 2020-03-12 삼성전자주식회사 전자 장치 및 그 제어 방법
US20220188633A1 (en) * 2019-03-15 2022-06-16 Interdigital Vc Holdings, Inc. Low displacement rank based deep neural network compression
US20210209450A1 (en) * 2020-01-03 2021-07-08 International Business Machines Corporation Compressed weight distribution in networks of neural processors
CN111340206A (zh) * 2020-02-20 2020-06-26 云南大学 一种基于FPGA的Alexnet前向网络加速器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262724B2 (en) * 2012-07-13 2016-02-16 International Business Machines Corporation Low-rank matrix factorization for deep belief network training with high-dimensional output targets
US20140156575A1 (en) * 2012-11-30 2014-06-05 Nuance Communications, Inc. Method and Apparatus of Processing Data Using Deep Belief Networks Employing Low-Rank Matrix Factorization
US9400955B2 (en) * 2013-12-13 2016-07-26 Amazon Technologies, Inc. Reducing dynamic range of low-rank decomposition matrices
US9767407B2 (en) * 2015-09-18 2017-09-19 Samsung Electronics Co., Ltd. Weighting device, neural network, and operating method of the weighting device
US9966137B2 (en) * 2016-08-17 2018-05-08 Samsung Electronics Co., Ltd. Low power analog or multi-level memory for neuromorphic computing
US10949736B2 (en) * 2016-11-03 2021-03-16 Intel Corporation Flexible neural network accelerator and methods therefor
US11205103B2 (en) * 2016-12-09 2021-12-21 The Research Foundation for the State University Semisupervised autoencoder for sentiment analysis
US10860923B2 (en) * 2016-12-20 2020-12-08 Samsung Electronics Co., Ltd. High-density neuromorphic computing element

Also Published As

Publication number Publication date
CN110472724A (zh) 2019-11-19
US11429849B2 (en) 2022-08-30
US20190042926A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
DE102019109631A1 (de) Tiefes komprimiertes netzwerk
DE102019114243A1 (de) Architektur für tiefe neuronale Netze unter Verwendung stückweiser linearer Approximation
DE19581638C2 (de) Rechenvorrichtung mit einem Mikroprozessor, einem neuralen Netz-Koprozessor und einer DMA-Steuervorrichtung
DE112019000336T5 (de) Massiv parallele neuronale inferenz-datenverarbeitungselemente
DE102018105457A1 (de) Transponieren von Matrizen neuronaler Netze in Hardware
DE112022000106T5 (de) Verfahren zur Getriebefehlerdiagnose und Signalerfassung, eine Vorrichtung und ein elektronisches Gerät
DE102017121887A1 (de) Ausführen von Kerndurchschreiten in Hardware
DE112017000670T5 (de) Beschleunigen eines Trainierens eines tiefen neuronalen Netzes mit einem inkonsistenten stochastischen Gradientenabfall
DE102018128080A1 (de) Verfahren und Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerkes
DE202017007641U1 (de) Training von maschinellen Lernmodellen auf mehrere maschinelle Lernaufgaben
DE202016107442U1 (de) Vektor-Recheneinheit in einem neuronalen Netzwerkprozessor
DE202016107436U1 (de) Neuronaler Netzwerkprozessor
DE112012000628T5 (de) Systeme und Verfahren zur Verarbeitung von maschinellen Lernalgorithmen in einer Mapreduce-Umgebung
DE202016107476U1 (de) Stapel-Verarbeitung in einem neuronalen Netzwerkprozessor
DE102018006015A1 (de) Globale und lokale Zeitschrittbestimmungsschemata für neuronale Netzwerke
DE112019003529T5 (de) Datendarstellung für dynamische Genauigkeit in Kernen neuronaler Netze
Fu et al. Simple hardware-efficient long convolutions for sequence modeling
DE102022107473A1 (de) Technologie für speichereffiziente und parametereffiziente graphneural networks
DE102020113480A1 (de) Zerlegte gleitkomma-multiplikation
DE112019005048T5 (de) Hyperparameteroptimierungsverfahren, -vorrichtung und -programm
DE112020004471T5 (de) Folgerungsvorrichtung, Trainingsvorrichtung, Folgerungsverfahren und Trainingsverfahren
DE102022124292A1 (de) Analoge multiply-accumulate-einheit für speicherinterne multibit-zellenberechnung
DE102022103358A1 (de) Training für maschinelles lernen im logarithmischen zahlensystem
DE102022100920A1 (de) Compute-in-memory-akkumulator
DE102019113874A1 (de) Hochpräzises niedrigbit-convolutional-neural-network

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee