DE102018101166A1 - AUTOMATED METHOD FOR CONVERTING TO A DATA FORMAT OF LESS ACCURACY - Google Patents
AUTOMATED METHOD FOR CONVERTING TO A DATA FORMAT OF LESS ACCURACY Download PDFInfo
- Publication number
- DE102018101166A1 DE102018101166A1 DE102018101166.0A DE102018101166A DE102018101166A1 DE 102018101166 A1 DE102018101166 A1 DE 102018101166A1 DE 102018101166 A DE102018101166 A DE 102018101166A DE 102018101166 A1 DE102018101166 A1 DE 102018101166A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- histogram
- candidate
- classes
- format
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Abstract
Die Aspekte der vorliegenden Erfindung richten sich auf computerimplementierte Techniken zum Durchführen einer Datenkomprimierung und -umwandlung zwischen Datenformaten verschiedener Genauigkeitsgrade und insbesondere zum Verbessern der Inferenz (Anwendung) von künstlichen neuronalen Netzen unter Verwendung eines Datenformats mit verringerter Genauigkeit (z. B. INT8). Die Ausführungsformen der vorliegenden Erfindung erzeugen Kandidatenumwandlungen einer Datenausgabe und nutzen dann ein relatives Qualitätsmaß zum Identifizieren der Kandidatenumwandlung mit der größten Genauigkeit (d. h. kleinsten Divergenz von den ursprünglichen Werten höherer Genauigkeit). Die Darstellung kann dann während der Interferenz zum Durchführen von Berechnungen an den sich ergebenden Ausgabedaten verwendet werden.Aspects of the present invention are directed to computer-implemented techniques for performing data compression and conversion between data formats of different degrees of accuracy, and more particularly for improving the inference (application) of artificial neural networks using a reduced accuracy data format (e.g., INT8). The embodiments of the present invention generate candidate conversions of a data output and then use a relative quality measure to identify the candidate conversion with the greatest accuracy (i.e., least divergence from the original higher-accuracy values). The representation may then be used during the interference to perform calculations on the resulting output data.
Description
GEGENSTAND DER ERFINDUNGSCOPE OF THE INVENTION
Die Ausführungsformen der vorliegenden Erfindung betreffen im Allgemeinen computerimplementierte Techniken zur Datenkomprimierung und Aufzeichnung von Informationen. Im Besonderen richten sich die Ausführungsformen der vorliegenden Erfindung auf ein System zum verbesserten Inferenzieren von tiefgehendem Lernen (Deep Learning) bei neuronalen und faltenden (convolutional) Netzen.The embodiments of the present invention generally relate to computer-implemented techniques for data compression and information recording. In particular, the embodiments of the present invention are directed to a system for improved inferencing of deep learning in neural and convolutional networks.
ALLGEMEINER STAND DER TECHNIKGENERAL PRIOR ART
Beim maschinellen Lernen handelt es sich um das Gebiet der Informatik, das sich auf die Verwendung von computerimplementierten Algorithmen zur Problemlösung durch Mustererkennung und adaptive Verarbeitung eines Datensatzes richtet. Im Gegensatz zur regulären „statischen“ Programmierung sind Anwendungen zum maschinellen Lernen dadurch gekennzeichnet, dass sie dazu in der Lage sind, prädiktive Datenmodelle durch eine iterative Verfeinerung von Modellen aus einem Datensatz ohne explizite Programmierung zu erzeugen. Künstliche neuronale Netze zählen zu den bekanntesten Algorithmen für maschinelles Lernen und verwenden verteilte Parallelprozessoren, um parametrisierte Berechnungen an Eingabedaten an mehreren miteinander verbundenen „Neuronen“ (Verarbeitungseinheiten) durchzuführen, die über eine oder mehrere interne oder „verdeckte“ Schichten zwischen einer Eingabeschicht und einer Ausgabeschicht verteilt sind, um eine Ausgabe zu berechnen, die mit einer Ziel- oder Referenzausgabe verglichen wird. Künstliche neuronale Netze sind durch Gewichtungen parametrisiert, die den Verbindungen zwischen Neuronen angrenzender Schichten zugeordnet sind. Die Parameter des Netzes werden ständig aktualisiert, um den Unterschied in der Ausgabe zu verringern und schließlich zu beseitigen, bis ein korrektes Datenmodell erzielt wird. „Tiefe“ neuronale Netze beziehen sich auf neuronale Netze, die aus 3 oder mehr Schichten bestehen.Machine learning is the field of computer science, which focuses on the use of computer-implemented algorithms for problem solving by pattern recognition and adaptive processing of a data set. Unlike regular "static" programming, machine learning applications are characterized by being able to generate predictive data models by iteratively refining models from a data set without explicit programming. Artificial neural networks are among the best-known machine learning algorithms and use distributed parallel processors to perform parametric calculations on input data to a plurality of interconnected "neurons" (processing units) that have one or more internal or "hidden" layers between an input layer and an output layer are distributed to calculate an output which is compared to a target or reference output. Artificial neural networks are parameterized by weights associated with the connections between neurons of adjacent layers. The parameters of the network are constantly updated to reduce and eventually eliminate the difference in the output until a correct data model is achieved. "Deep" neural networks refer to neural networks consisting of 3 or more layers.
Ein bekanntes Trainingsverfahren für künstliche neuronale Netze wird als Fehlerrückführung (oder Backpropagation) bezeichnet. Ausgehend von einem vorgegebenen (oftmals zufälligen) Satz von Gewichtungen, werden die Gewichtungen verfeinert, indem wiederholt ein zweistufiger Zyklus von Operationen angewandt wird, der einen Vorwärtsdurchlauf mit einer anschließenden stufenweisen Rückpropagationsphase („Fehlerrückführungsphase“) in Verbindung mit einer Optimierungsphase beinhaltet. Während der Vorwärtspropagationsphase wird eine Eingabe vorwärts durch das neuronale Netz propagiert, wobei eine Berechnung an jedem Neuron Schicht für Schicht durchgeführt wird, bis die Ausgabeschicht erreicht ist. Nichtlineare Aktivierungsfunktionen können ebenfalls auf ein oder mehrere Neuronen angewandt werden, um die Ausgabe weiter auf diskrete Werte zu lenken. Die Ausgabe wird dann mit der Zielausgabe mittels einer Verlustfunktion verglichen und ein Fehlerwert wird für jedes der Elemente in der Ausgabeschicht berechnet. Während der Fehlerrückführungsphase werden die Gradienten der Fehlerfunktion berechnet und dann rückwärts durch die Schichten propagiert, um Gradienten zu bestimmen, die jedem Neuron entsprechen. Diese Gradienten werden dann verwendet, um den Gradienten der Verlustfunktion in Bezug auf jede der Gewichtungen in dem Netz zu berechnen. In der letzten Phase wird der berechnete Gradient verwendet, um die angewandten Gewichtungen in einem Versuch zu aktualisieren, die Verlustfunktion zu minimieren. Sobald sich die Ist-Ausgabe der Soll-Ausgabe im Wesentlichen annähert (z. B. innerhalb eines Genauigkeitsschwellenwerts) wird das Datenmodell als abgeschlossen angesehen und kann das weitere Lernen beendet werden.One known training method for artificial neural networks is called error return (or backpropagation). Starting from a given (often random) set of weights, the weights are refined by repeatedly applying a two-stage cycle of operations involving a forward pass followed by a stepwise backpropagation phase ("error recovery phase") in conjunction with an optimization phase. During the forward propagation phase, an input is propagated forward through the neural network, performing a computation on each neuron layer by layer until the output layer is reached. Non-linear activation functions can also be applied to one or more neurons to further direct the output to discrete values. The output is then compared to the target output by means of a loss function, and an error value is calculated for each of the elements in the output layer. During the error recovery phase, the gradients of the error function are calculated and then propagated backwards through the layers to determine gradients corresponding to each neuron. These gradients are then used to calculate the gradient of the loss function with respect to each of the weights in the network. In the last phase, the calculated gradient is used to update the applied weights in an attempt to minimize the loss function. Once the actual output substantially approaches the target output (eg, within an accuracy threshold), the data model is considered complete and further learning can be terminated.
Nachdem das Training eines neuronalen Netzes abgeschlossen ist, können die Netze im Feld zur „Inferenz“ eingesetzt werden, bei der Eingabedaten durch die Ausgabe des Netzes eingestuft werden, um ein Ergebnis „abzuleiten“. Herkömmliche Computerimplementierungen zum Trainieren von neuronalen Netzen (wie z. B. Fehlerrückführung) nutzen typischerweise Darstellungen reeller Zahlen als 32-Bit-Gleitkommazahl (auch Gleitkommazahl einfacher Genauigkeit oder FP32 genannt) zur Datenspeicherung und -bearbeitung beim Durchführen von Datenberechnungen. Natürlich werden bei einer an diesen Modellen durchgeführten Inferenz ebenfalls FP32-Darstellungen verwendet. Zur Speicherung und Berechnung von 32-Bit-Werten werden jedoch erhebliche Speicher- und Verarbeitungsressourcen benötigt. Infolgedessen wurden neue Techniken entwickelt, die stattdessen ein Format mit verringerter Genauigkeit nutzen. Anstelle der vollen 32 Bits können diese Lösungen stattdessen eine Darstellung als 16-Bit-Gleitkommazahl (Float16) oder eine Darstellung als 8-Bit-Ganzzahl (INT8) verwenden.After the training of a neural network is completed, the nets can be used in the field for "inference" in which input data is classified by the output of the network to "derive" a result. Conventional computer implementations for training neural networks (such as error feedback) typically use real-number representations as a 32-bit floating-point number (also called a single-precision floating-point number or FP32) for data storage and processing when performing data calculations. Of course, an inference made on these models will also use FP32 representations. However, storing and computing 32-bit values requires significant memory and processing resources. As a result, new techniques have been developed that use a reduced-precision format instead. Instead of the full 32 bits, these solutions may instead use a representation as a 16-bit floating-point number (Float16) or a representation as an 8-bit integer (INT8).
Die Verwendung von Formaten mit verringerter Datengenauigkeit zum Inferenzieren von neuronalen (insbesondere faltenden) Netzen bietet mehrere Vorteile gegenüber herkömmlichen Formaten mit einer Gleitkommazahl einfacher Genauigkeit. Insbesondere können diese Berechnungen in einem geringeren Format bei rechenintensiven Schichten in dem neuronalen Netz (potenziell) wesentlich schneller durchgeführt werden als bei einer Gleitkommazahl einfacher Genauigkeit. Zum Speichern der Werte mit verringerter Datengenauigkeit ist wesentlich weniger Speicher erforderlich. Durch die Speicherung von Daten in dem Format mit verringerter Datengenauigkeit verbessert sich zudem die Leistung bei Schichten begrenzter Bandbreite aufgrund der verringerten Zeit, die zum Übertragen von Daten erforderlich ist. Schließlich ermöglicht die Speicherung unter Verwendung des Formats mit verringerter Datengenauigkeit zudem eine Verkleinerung des Netzes und Verkürzung der Zeit, die zum Kommunizieren in Mehrprozessorsystemen (z. B. Multi-GPU-Systemen) nötig ist.The use of reduced data accuracy formats to infer neuronal (especially convolutional) networks offers several advantages over conventional single-precision floating point formats. In particular, these computations in a smaller format can be performed much faster (potentially) in computationally intensive layers in the neural network than with a floating-point number of single precision. Saving the data with reduced data accuracy requires significantly less memory. Also, by storing data in the reduced data accuracy format, the performance of limited bandwidth layers improves due to the reduced time required to transfer data. Finally, storage using the format with reduced data accuracy also enables downsizing of the network and shortening of the time required to communicate in multiprocessor systems (eg, multi-GPU systems).
Leider weisen Zahlen mit verringerter Datengenauigkeit einen signifikant engeren Zahlenbereich auf als Darstellungen als Gleitkommazahl einfacher Genauigkeit. Infolgedessen kann es zu einem Überlauf oder Unterlauf kommen, wenn Berechnungen durchgeführt werden, aus denen Zahlenwerte außerhalb des vorgeschriebenen Bereichs hervorgehen. Bei vorangehenden Lösungsversuchen war die Anwendung von Beschränkungen beim Training erforderlich oder wurde ein komplexeres oder schwierigeres mathematisches Modell verwendet, bei dem etwas Feineinstellung nötig ist. Ein weiterer Nachteil dieser vorbekannten Verfahren besteht darin, dass eine Quantisierung aus größeren Sätzen von Werten (z. B. aus einer Gleitkommazahl einfacher Genauigkeit in ein Format mit verringerter Genauigkeit) dynamisch durchgeführt wird und damit zusätzlichen Verarbeitungsaufwand während der Berechnung erfordert.Unfortunately, numbers with reduced data accuracy have a significantly narrower number range than representations as a single-precision floating-point number. As a result, an overflow or underflow may occur when computations are performed that yield numbers outside the prescribed range. Previous attempts to solve the problem required training limitations or a more complex or difficult mathematical model that required some fine tuning. Another disadvantage of these prior art methods is that quantization from larger sets of values (eg, from a single-precision floating-point number into a reduced-precision format) is performed dynamically, requiring additional processing overhead during the computation.
KURZDARSTELLUNG DER ERFINDUNGBRIEF SUMMARY OF THE INVENTION
Diese Kurzdarstellung wird bereitgestellt, um eine Auswahl an Konzepten in vereinfachter Form vorzustellen, die nachfolgend in der detaillierten Beschreibung näher beschrieben sind. Diese Kurzdarstellung ist weder dazu vorgesehen, Schlüsselmerkmale oder wesentliche Merkmale der Erfindung zu nennen, noch ist sie dazu vorgesehen, den Umfang der Erfindung einzuschränken.This summary is provided to introduce a selection of concepts in a simplified form, which are described in more detail below in the detailed description. This summary is not intended to identify key features or essential features of the invention, nor is it intended to limit the scope of the invention.
Die Ausführungsformen der vorliegenden Erfindung richten sich auf computerimplementierte Prozeduren zum Verbessern der Interferenz (Anwendung) künstlicher neuronaler Netze unter Verwendung eines Datenformats mit verringerter Genauigkeit (z. B. INT8). Die Ausführungsformen der vorliegenden Erfindung erzeugen Kandidatenumwandlungen einer Datenausgabe und nutzen dann ein relatives Qualitätsmaß zum Identifizieren der Kandidatenumwandlung mit der größten Genauigkeit (z. B. kleinste Divergenz von den ursprünglichen Werten höherer Genauigkeit). Die Darstellung kann dann während der Interferenz zum Berechnen der sich ergebenden Ausgabedaten verwendet werden.The embodiments of the present invention are directed to computer-implemented procedures for improving the interference (application) of artificial neural networks using a reduced precision data format (e.g., INT8). The embodiments of the present invention generate candidate conversions of a data output and then use a relative quality measure to identify the candidate conversion with the greatest accuracy (eg, least divergence from the original higher-accuracy values). The representation may then be used during the interference to compute the resulting output data.
Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein computerimplementiertes Verfahren zum Automatisieren einer Umwandlung von Datenformaten höherer Genauigkeit in Datenformate geringerer Genauigkeit bereitgestellt. Das Verfahren wird z. B. durch Referenzieren vorgespeicherter Aktivierungsdaten, Erstellen eines Histogramms für die Aktivierungsdaten, Erzeugen von Verteilungen mit verringerter Genauigkeit für das Histogramm mit verschiedenen Sättigungsschwellenwerten, Messen von Verteilungen auf Divergenz gegenüber einer Referenzverteilung höherer Genauigkeit und Identifizieren der Verteilung mit der kleinsten Divergenz von der Referenzverteilung durchgeführt. In einer oder mehreren Ausführungsformen kann das Verfahren für jede Schicht eines neuronalen Netzes durchgeführt werden. In wieder anderen Ausführungsformen wird das Verfahren für jede Schicht unabhängig in Bezug auf eine jede andere Schicht des neuronalen Netzes durchgeführt.In accordance with one embodiment of the present invention, there is provided a computer-implemented method for automating conversion of higher-precision data formats to lower-precision data formats. The method is z. For example, by referencing pre-stored activation data, creating a histogram for the activation data, generating reduced-precision distributions for the histogram with different saturation thresholds, measuring distributions for divergence versus a reference distribution of higher accuracy, and identifying the distribution having the smallest divergence from the reference distribution. In one or more embodiments, the method may be performed for each layer of a neural network. In still other embodiments, the method for each layer is performed independently with respect to each other layer of the neural network.
In einer oder mehreren Ausführungsformen können die Aktivierungsdaten Daten einschließen, die durch Anwenden eines neuronalen Netzes auf wenigstens einen Abschnitt eines Kalibrierungsdatensatzes erzeugt werden, um einen oder mehrere Skalierungsfaktoren zum Umwandeln von Daten von einem Format höherer Genauigkeit in ein Format geringerer Genauigkeit zu bestimmen. Die Kalibrierung kann offline (z. B. vor Laufzeit-Inferenz) durchgeführt werden, um die Skalierungsfaktoren statisch zu bestimmen. Aktivierungsdaten werden für eine oder mehrere Schichten des neuronalen Netzes erzeugt. Die Aktivierungsdaten (Ausgabedaten) werden dann erfasst und gespeichert und anschließend wird ein Histogramm der Daten erstellt.In one or more embodiments, the activation data may include data generated by applying a neural network to at least a portion of a calibration data set to determine one or more scale factors for converting data from a higher-accuracy format to a lower-accuracy format. The calibration can be performed offline (eg, prior to runtime inference) to statically determine the scaling factors. Activation data is generated for one or more layers of the neural network. The activation data (output data) is then captured and stored, and then a histogram of the data is created.
In einer oder mehreren Ausführungsformen wird das Erzeugen der Verteilungen mit verringerter Genauigkeit (Kandidatenumwandlungen) für ein jeweiliges Histogramm iterativ über eine Vielzahl von verschiedenen Sättigungsgraden durchgeführt, die der Anzahl von Kandidatenumwandlungen entsprechen. Die genaue Anzahl von Kandidatenumwandlungen kann selbst dem Bereich von Werten zwischen 0 und dem höchsten (maximalen) Wert entsprechen, der in den Aktivierungsdaten festzustellen ist, wobei jede Kandidatenumwandlung einen anderen Sättigungsgrad zwischen 0 und dem höchsten festgestellten Absolutwert aufweist. Bei jeder jeweiligen Kandidatenumwandlung werden die Werte in den Klassen des Histogramms über dem Sättigungsgrad, welcher der Kandidatenumwandlung entspricht, auf den Sättigungsgrad eingegrenzt. Anschließend werden die Klassen des Histogramms für den Satz von aktivierten Datenwerten für eine Schicht dann anteilig für alle Klassen unter dem Sättigungsschwellenwert, welcher der Kandidatenumwandlung entspricht, zusammengeführt, bis die verbleibende Anzahl von Klassen dem maximalen positiven Wert für ein ausgewähltes Datenformat geringer Genauigkeit entspricht. Die Kandidatenumwandlungen werden dann unter Verwendung einer Divergenzmetrik mit den ursprünglichen Datenwerten verglichen, um die Kandidatenumwandlung mit der größten Genauigkeit zu bestimmen.In one or more embodiments, producing the reduced-precision distributions (candidate conversions) for a respective histogram is iteratively performed over a plurality of different saturation degrees corresponding to the number of candidate conversions. The exact number of candidate conversions may itself correspond to the range of values between 0 and the highest (maximum) value found in the activation data, with each candidate conversion having a different saturation level between 0 and the highest absolute value detected. At each respective candidate conversion, the values in the classes of the histogram above the saturation level corresponding to the candidate conversion are limited to the saturation level. Then, the classes of the histogram for the set of enabled data values for a shift then become proportionally for all classes below the saturation threshold corresponding to the candidate conversion, until the remaining number of classes equals the maximum positive value for a selected low-precision data format. The candidate conversions are then compared to the original data values using a divergence metric to determine candidate conversion with the greatest accuracy.
Gemäß einer wieder anderen Ausführungsform der vorliegenden Erfindung wird ein programmierte Anweisungen beinhaltendes computerlesbares Medium bereitgestellt, das Anweisungen zum Durchführen des oben beschriebenen Verfahrens zum automatischen Umwandeln von Daten von einem Datenformat höherer Genauigkeit in ein Datenformat geringerer Genauigkeit beinhaltet, und wird ein Computersystem bereitgestellt, das einen Prozessor und einen Speicher beinhaltet, wobei Datenwerte, die als Ausgabe bei Interferenzoperationen erzeugt werden, in dem Speicher gespeichert, automatisch umgewandelt und unter Verwendung eines Formats mit verringerter Genauigkeit verarbeitet werden.According to yet another embodiment of the present invention, there is provided a computer-readable medium containing programmed instructions that includes instructions for performing the above-described method of automatically converting data from a higher-precision data format to a lower-precision data format, and providing a computer system that includes a Processor and a memory, wherein data values generated as output in interference operations are stored in the memory, automatically converted and processed using a format with reduced accuracy.
Anders als bei herkömmlichen Techniken ist bei der von Ausführungsform der vorliegenden Erfindung durchgeführten Inferenz ein erneutes Training oder eine Feineinstellung des ursprüngliches FP32-Netzes oder die Anwendung von Beschränkungen während des Trainings nicht erforderlich. Weiterhin können Datenformatumwandlungen automatisch und statisch durch Ausführen eines Trainingskalibrierungssatzes durchgeführt werden, wodurch die zusätzlichen Verarbeitungsanforderungen zur dynamischen Quantisierung von vorherigen Lösungsversuchen entfallen, während Ergebnisse erzielt werden, die mit denen des ursprünglichen FP32-Netzes vergleichbar sind.Unlike conventional techniques, the inference made by embodiment of the present invention does not require re-training or fine tuning of the original FP32 network or the application of constraints during training. Furthermore, data format conversions can be performed automatically and statically by executing a training calibration set, thereby eliminating the additional processing requirements for dynamically quantizing previous solve attempts while achieving results comparable to those of the original FP32 network.
Figurenlistelist of figures
Die beigefügten Zeichnungen sind in diese Beschreibung aufgenommen und bilden einen Bestandteil davon. Die Zeichnungen veranschaulichen Ausführungsformen. Zusammen mit der Beschreibung dienen die Zeichnungen der Erläuterung der Prinzipien der Ausführungsformen:
-
1 veranschaulicht ein beispielhaftes computerimplementiertes Verfahren zum automatischen Umwandeln von Werten von einem Datenformat höherer Genauigkeit in ein Datenformat geringerer Genauigkeit gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. -
2 veranschaulicht ein beispielhaftes computerimplementiertes Verfahren zum Erzeugen von Aktivierungsdaten während einer Kalibrierungsoperation in einem künstlichen neuronalen Netz gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. -
3 veranschaulicht ein beispielhaftes computerimplementiertes Verfahren zum Erzeugen von Kandidatenumwandlungen in ein Datenformat geringerer Genauigkeit von Werten eines Datenformats höherer Genauigkeit gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. -
4 veranschaulicht ein beispielhaftes Rechensystem, auf dem Ausführungsformen der vorliegenden Erfindung implementiert werden können, gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung.
-
1 FIG. 12 illustrates an example computer-implemented method for automatically converting values from a higher-precision data format to a lower-precision data format according to various embodiments of the present invention. -
2 FIG. 12 illustrates an example computer-implemented method for generating activation data during a calibration operation in an artificial neural network according to various embodiments of the present invention. FIG. -
3 FIG. 12 illustrates an example computer-implemented method for generating candidate conversions into a lower-precision data format of higher-precision data format values according to various embodiments of the present invention. FIG. -
4 FIG. 12 illustrates an example computing system on which embodiments of the present invention may be implemented, according to various embodiments of the present invention.
DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION
Nun wird auf die bevorzugten Ausführungsformen der Erfindung genauer Bezug genommen. Während die Erfindung in Verbindung mit den bevorzugten Ausführungsformen beschrieben wird, versteht sich, dass sie nicht auf diese Ausführungsformen beschränkt sind. Die Erfindung soll hingegen Alternativen, Modifikationen und Äquivalente abdecken, die im Geist und Umfang, wie er in den beigefügten Ansprüchen definiert ist, eingeschlossen sein können.Reference will now be made to the preferred embodiments of the invention. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not limited to these embodiments. By contrast, the invention is intended to cover alternatives, modifications, and equivalents, which may be included within the spirit and scope as defined in the appended claims.
Weiterhin sind in den folgenden detaillierten Beschreibungen von Ausführungsformen der Erfindung zahlreiche konkrete Details aufgeführt, um ein umfassendes Verständnis der Erfindung zu vermitteln. Für den Durchschnittsfachmann liegt jedoch auf der Hand, dass die Erfindung ohne diese konkreten Details ausgeführt werden kann. In anderen Fällen wurden allgemein bekannte Verfahren, Prozeduren, Komponenten und Schaltungen nicht näher beschrieben, um Aspekte der Erfindung nicht unnötig zu verschleiern.Furthermore, in the following detailed descriptions of embodiments of the invention, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be apparent to one of ordinary skill in the art that the invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the invention.
Einige Abschnitte der folgenden detaillierten Beschreibungen sind im Zusammenhang mit Prozeduren, Schritten, Logikblöcken, Verarbeitung und anderen symbolischen Darstellungen von Operationen an Datenbits aufgeführt, die auf einem Computerspeicher durchgeführt werden können. Diese Beschreibungen und Darstellungen sind die Mittel, die vom Fachmann auf dem Gebiet der Datenverarbeitung verwendet werden, um den Gegenstand seiner Arbeit einem anderen Fachmann am wirksamsten zu vermitteln. Eine Prozedur, ein computererzeugter Schritt, ein Logikblock, ein Verfahren usw. wird hier und allgemein als selbstkonsistente Abfolge von Schritten oder Anweisungen verstanden, die zu einem gewünschten Ergebnis führt. Die Schritte sind diejenigen, die physikalische Manipulationen physikalischer Größen erfordern. Normalerweise, jedoch nicht zwangsläufig, nehmen diese Größen die Form von elektrischen oder magnetischen Signalen an, die dazu in der Lage sind, gespeichert, übertragen, kombiniert, verglichen und anderweitig in einem Computersystem manipuliert zu werden. Es hat sich vor allem aus Gründen des allgemeinen Gebrauchs mitunter als praktisch erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Terme, Zahlen oder dergleichen zu bezeichnen.Some portions of the following detailed descriptions are in the context of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits that may be performed on computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to communicate the object of his work most effectively to another professional. A procedure, a computer-generated step, a logic block, a method, etc. are here and generally understood to be a self-consistent sequence of steps or instructions that result in a desired result. The steps are those that require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
Es sollte jedoch beachtet werden, dass all diese und ähnliche Ausdrücke mit den geeigneten physikalischen Größen in Verbindung gebracht werden müssen und lediglich zweckdienliche Bezeichnungen sind, die für diese Größen angewandt werden. Sofern nicht ausdrücklich anders angegeben, versteht sich, wie aus den folgenden Erörterungen ersichtlich, dass sich in der vorliegenden Erfindung Erörterungen, bei denen Ausdrücke wie „Speichern“, „Erstellen“, „Schützen“, „Empfangen“, „Verschlüsseln“, „Entschlüsseln“, „Zerstören“ oder dergleichen verwendet werden, auf die Tätigkeit und Prozesse eines Computersystems oder einer integrierten Schaltung oder ähnlichen elektronischen Rechenvorrichtung beziehen, das bzw. die ein eingebettetes System beinhaltet, das Daten, die in den Registern und Speichern des Computersystems als physikalische (elektronische) Größen dargestellt sind, manipuliert und in andere Daten umwandelt, die auf ähnliche Weise als physikalische Größen in den Speichern oder Registern des Computersystems oder anderer derartiger Informationsspeicher-, Übertragungs- oder Anzeigevorrichtungen dargestellt sind.It should be noted, however, that all of these and similar terms must be associated with the appropriate physical quantities and are merely convenient terms used for those quantities. Unless otherwise stated, it will be understood from the following discussions that in the present invention, discussions are made in which expressions such as "save", "create", "protect", "receive", "encrypt", "decrypt , "Destroy" or the like, refer to the operation and processes of a computer system or integrated circuit or similar electronic computing device incorporating an embedded system that stores data stored in the registers and memories of the computer system as physical (e.g. electronic) quantities, manipulated and converted into other data, similarly represented as physical quantities in the memories or registers of the computer system or other such information storage, transmission or display devices.
AUTOMATISIERTE UMWANDLUNG ZWISCHEN DATENFORMATEN HOHER UND GERINGER GENAUIGKEITAUTOMATED CONVERSION BETWEEN DATA FORMATS HIGH AND LOW ACCURACY
Bei Schritt
Eine Vielzahl von Verteilungen geringerer Genauigkeit (z. B. Kandidatenumwandlungen) wird für die Werte in dem Histogramm bei Schritt
ERFASSUNG VON AKTIVIERUNGSDATENRECORDING OF ACTIVATION DATA
Wie in
Bei Schritt
ERZEUGUNG VON KANDIDATENUMWANDLUNGENGENERATION OF CANDIDATE CONVERSIONS
Bei Schritt
In einer oder mehreren Ausführungsformen weist jede Kandidatenumwandlung einen entsprechenden Sättigungsschwellenwert auf, sodass jeder Wert über dem Schwellenwert auf den Schwellenwert eingegrenzt wird. Bei Schritt
Wenn z. B. der Sättigungswert für eine bestimmte Kandidatenumwandlung gleich 1000 ist, dann werden die Histogrammklassen zwischen 0 und 1000 in den maximalen ausdrückbaren positiven Wert (z. B. 127 bei Int8) aufgeteilt, um die nächstliegende ganze Zahl zum Quotienten (z. B. 8) zu bestimmen. Diskrete Folgen von aufeinanderfolgenden Histogrammklassen zwischen 0 und dem Sättigungsschwellenwert (z. B. 1000) werden dann nacheinander komprimiert (z. B. zusammengeführt), bis die verbleibende Anzahl von Histogrammklassen dem höchsten festgestellten Absolutwert entspricht. Im obengenannten Beispiel für 8-Bit-Ganzzahlen wird jede Folge von 8 (Quotient) Histogrammklassen zusammengeführt, sodass die verbleibende Klassenanzahl
Die sich ergebenden zusammengeführten und/oder eingegrenzten Datenwerte werden bei Schritt
Nachfolgend ist ein Abschnitt von beispielhaftem Pseudocode aufgeführt. Gemäß Ausführungsformen der Erfindung kann ein computerlesbares Medium, das programmierte Anweisungen enthält, welche die nachstehend aufgeführten programmierten Anweisungen bei Ausführung durch einen Prozessor (zumindest) im Wesentlichen durchführen, verwendet werden, um eine Datenkomprimierung und -aufzeichnung von Datenformaten höherer Genauigkeit in Datenformate geringerer Genauigkeit im Allgemeinen und im Besonderen für einzelne Schichten eines künstlichen neuronalen Netzes durchzuführen.
Beispielhafter PseudocodeExemplary pseudocode
Eingabe: „Klassen“ (Bins) eines Histogramms bei FP32-Ausführung, enthält 2048 Klassen
bins[0] = bins[1]
divergences = empty list
For i in range(128, 2048):
candidate_distribution_Q = take bins from bins[0], ... ,
bins [i-1] and quantize into 128 levels
reference_distribution_P = bins[0] , ... , bins[i-1]
outliers_count = sum(bins[i], bins[i+1], ... , bins[2047])
reference_distribution_P[ i-1 ] += outliers_count
normalize reference_distribution_P (sum equal to 1)
normalize candidate_distribution_Q (sum equal to 1)
divergences[i] = KL_divergence(reference_distribution_P,
candidate_distribution_Q)
Find index ‚i‘ for which divergences[i] is minimal
Return i
Later this index is transformed into activation value:
max_estimated_value = (i + 0.5) * bins.width_of_a_single_binInput: "classes" (bins) of a histogram in FP32 execution, contains 2048 classes bins [0] = bins [1] divergences = empty list For i in range (128, 2048): candidate_distribution_Q = take bins from bins [0] , ..., bins [i-1] and quantize into 128 levels reference_distribution_P = bins [0], ..., bins [i-1] outliers_count = sum (bins [i], bins [i + 1],. .., bins [2047]) reference_distribution_P [i-1] + = outliers_count normalize reference_distribution_P (sum equal to 1) normalize candidate_distribution_Q (sum equal to 1) divergences [i] = KL_divergence (reference_distribution_P, candidate_distribution_Q) Find index, i for which divergences [i] is minimal Return i Later this index is transformed into activation value: max_estimated_value = (i + 0.5) * bins.width_of_a_single_bin
Beispielexample
Eingabeverteilung: [5 5 4 0 2 4 7 3 1 4 6 0 3 2 1 3], Größe: 16 Klassen
Ausgehend von i: 8
Quantisierung der Eingangsverteilung in 4 Klassen
Jetzt Iterationen: 11, 12, 13, 14, 15, 16Input distribution: [5 5 4 0 2 4 7 3 1 4 6 0 3 2 1 3], size: 16 classes
Starting from i: 8
Quantization of the input distribution into 4 classes Now iterations: 11, 12, 13, 14, 15, 16
BEISPIELHAFTE RECHENVORRICHTUNG EXAMPLE APPENDIX
Wie in
Das Computersystem
Zudem kann das Rechensystem
Das Computersystem
Obwohl der Gegenstand in für Strukturmerkmale und/oder Verfahrenshandlungen spezifischer Sprache beschrieben wurde, versteht sich, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht unbedingt auf die oben beschriebenen konkreten Merkmale oder Handlungen beschränkt ist. Die oben beschriebenen konkreten Merkmale und Handlungen werden vielmehr als beispielhafte Formen zur Umsetzung der Ansprüche offenbart.Although the subject matter has been described in language specific to structural features and / or procedures, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the particular features or acts described above. Rather, the specific features and acts described above are disclosed as exemplary forms for implementing the claims.
In der vorstehenden Beschreibung wurden Ausführungsformen in Bezug auf zahlreiche konkrete Details beschrieben, die von Umsetzung zu Umsetzung variieren können. Somit ist der einzige und ausschließliche Indikator dafür, was die Erfindung ist und vom Anmelder als die Erfindung vorgesehen ist, der Satz von Ansprüchen, der aus dieser Anmeldung hervorgeht, in der konkreten Form, in dem diese Ansprüche hervorgehen, einschließlich nachfolgender Berichtigungen. Folglich wird der Umfang eines Anspruchs durch Einschränkungen, Elemente, Eigenschaften, Merkmale, Vorteile oder Attribute, die nicht ausdrücklich in diesem Anspruch genannt sind, in keiner Weise eingeschränkt. Demnach sind die Beschreibung und die Zeichnungen in einem veranschaulichenden und nicht einschränkenden Sinne zu verstehen.In the foregoing description, embodiments have been described in terms of numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indication of what the invention is and intended by the Applicant to be the invention is the phrase set forth in this application in the specific form in which these claims appear, including any subsequent adjustments. Consequently, the scope of a claim is in no way limited by any limitations, elements, features, features, advantages or attributes not expressly stated in this claim. Accordingly, the description and drawings are to be considered in an illustrative and non-limiting sense.
Claims (15)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762448909P | 2017-01-20 | 2017-01-20 | |
US62/448,909 | 2017-01-20 | ||
US15/838,273 US10997492B2 (en) | 2017-01-20 | 2017-12-11 | Automated methods for conversions to a lower precision data format |
US15/838,273 | 2017-12-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102018101166A1 true DE102018101166A1 (en) | 2018-07-26 |
Family
ID=62813072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102018101166.0A Pending DE102018101166A1 (en) | 2017-01-20 | 2018-01-19 | AUTOMATED METHOD FOR CONVERTING TO A DATA FORMAT OF LESS ACCURACY |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102018101166A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111401518A (en) * | 2020-03-04 | 2020-07-10 | 杭州嘉楠耘智信息科技有限公司 | Neural network quantization method and device and computer readable storage medium |
CN112434781A (en) * | 2019-08-26 | 2021-03-02 | 上海寒武纪信息科技有限公司 | Method, apparatus and related product for processing data |
-
2018
- 2018-01-19 DE DE102018101166.0A patent/DE102018101166A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112434781A (en) * | 2019-08-26 | 2021-03-02 | 上海寒武纪信息科技有限公司 | Method, apparatus and related product for processing data |
CN111401518A (en) * | 2020-03-04 | 2020-07-10 | 杭州嘉楠耘智信息科技有限公司 | Neural network quantization method and device and computer readable storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997492B2 (en) | Automated methods for conversions to a lower precision data format | |
DE102017113232A1 (en) | TENSOR PROCESSING USING A FORMAT WITH LOW ACCURACY | |
CN110135580B (en) | Convolution network full integer quantization method and application method thereof | |
DE102018130084A1 (en) | Dynamic quantization of neural networks | |
DE112018004693T5 (en) | IMPROVE THE EFFICIENCY OF A NEURONAL NETWORK | |
DE112019003529T5 (en) | Data representation for dynamic accuracy in the cores of neural networks | |
DE102018128080A1 (en) | Method and device for quantizing an artificial neural network | |
DE102020125207A1 (en) | UNATTENDED TRAINING FROM NEURONAL NETWORK TO IMAGE COMPRESSION WITH HIGH DYNAMIC SCOPE | |
CN104008538A (en) | Super-resolution method based on single image | |
DE102013213397A1 (en) | Method and apparatus for providing support point data for a data-based function model | |
DE112019001799T5 (en) | EXTENDED FORMATTING OF BINARY FLOATING COMMA NUMBERS WITH LOWER ACCURACY | |
DE112020003600T5 (en) | MACHINE LEARNING HARDWARE WITH PARAMETER COMPONENTS WITH REDUCED ACCURACY FOR EFFICIENT PARAMETER UPDATE | |
DE112020004031T5 (en) | SYSTEM-RELATED SELECTIVE QUANTIZATION FOR PERFORMANCE OPTIMIZED DISTRIBUTED DEEP LEARNING | |
DE112019005048T5 (en) | Hyperparameter optimization method, device and program | |
DE102022119386A1 (en) | METHOD AND APPARATUS FOR PERFORMING DENSE PREDICTION USING TRANSFORMER BLOCKS | |
DE112020000448T5 (en) | CAMERA SELF CALIBRATION NETWORK | |
DE202019006019U1 (en) | Techniques for analyzing vehicle design deviations using deep learning with neural networks | |
DE112020004471T5 (en) | Inference device, training device, inference method and training method | |
DE202011110226U1 (en) | Coupling method or simulation device for non-iterative co-simulation | |
DE112023000011T5 (en) | A primary frequency modulation control system of the thermal power generation unit with small disturbances | |
EP1437685A2 (en) | Method for segmenting three-dimensional structures | |
DE102018101166A1 (en) | AUTOMATED METHOD FOR CONVERTING TO A DATA FORMAT OF LESS ACCURACY | |
DE102022113243A1 (en) | Score-based generative modeling in latent space | |
DE102014225039A1 (en) | Method and apparatus for providing sparse Gaussian process models for calculation in an engine control unit | |
DE102020103414A1 (en) | COMPRESSION METHODS FOR DATA STRUCTURES SUITABLE FOR ARTIFICIAL NEURAL NETWORKS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication |