DE102020206506A1 - Method for testing different architectures of an artificial neural network - Google Patents

Method for testing different architectures of an artificial neural network Download PDF

Info

Publication number
DE102020206506A1
DE102020206506A1 DE102020206506.3A DE102020206506A DE102020206506A1 DE 102020206506 A1 DE102020206506 A1 DE 102020206506A1 DE 102020206506 A DE102020206506 A DE 102020206506A DE 102020206506 A1 DE102020206506 A1 DE 102020206506A1
Authority
DE
Germany
Prior art keywords
test
neural network
artificial neural
different
filter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020206506.3A
Other languages
German (de)
Inventor
Frank Hafner
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.)
ZF Friedrichshafen AG
Original Assignee
ZF Friedrichshafen AG
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 ZF Friedrichshafen AG filed Critical ZF Friedrichshafen AG
Priority to DE102020206506.3A priority Critical patent/DE102020206506A1/en
Publication of DE102020206506A1 publication Critical patent/DE102020206506A1/en
Pending 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Testen unterschiedlicher Architekturen (132) eines künstlichen neuronalen Netzes (108), wobei das künstliche neuronale Netz (108) eine definierte Abfolge von Filterschichten (110) umfasst, wobei jede der Filterschichten (110) eine definierte Anzahl trainierbarer Filter (116) einer definierten Filtergröße zum Umwandeln einer Eingabe (112) in eine Ausgabe (114) umfasst. Das Verfahren umfasst die folgenden Schritte: Generieren von Testanfragen (122) durch ein Testgeneriermodul (118) und Senden der Testanfragen (122) von dem Testgeneriermodul (118) an ein Testsystem (104) zum Ausführen eines auf dem künstlichen neuronalen Netz (108) basierenden Algorithmus; Durchführen mindestens zweier Reihen (128) von Tests (130) basierend auf den Testanfragen (122) durch das Testsystem (104), wobei für jede Reihe (128) eine andere Architektur (132) des künstlichen neuronalen Netzes (108) verwendet wird, wobei sich die Architekturen (132) unterschiedlicher Reihen (128) zumindest in einer Abfolge der Filtergrößen voneinander unterscheiden, wobei unterschiedliche Einstellungen für mindestens einen weiteren Parameter (134a, 134b, 134c) des künstlichen neuronalen Netzes (108) bestimmt werden, wobei für jeden Test (130) innerhalb einer Reihe (128) eine andere Einstellung verwendet wird, wobei in jedem der Tests (130) Eingaben (112) in das künstliche neuronale Netz (108) eingegeben werden und ein Testergebnis (136) ermittelt wird, das eine Leistungsfähigkeit des Testsystems (104) beim Verarbeiten der Eingaben (112) durch das künstliche neuronale Netz (108) anzeigt; Senden der Testergebnisse (136) von dem Testsystem (104) an ein Testauswertemodul (120); und Auswerten der Testergebnisse (136) durch das Testauswertemodul (120).The invention relates to a method for testing different architectures (132) of an artificial neural network (108), the artificial neural network (108) comprising a defined sequence of filter layers (110), each of the filter layers (110) having a defined number of trainable filters (116) of a defined filter size for converting an input (112) into an output (114). The method comprises the following steps: generating test requests (122) by a test generation module (118) and sending the test requests (122) from the test generation module (118) to a test system (104) for executing one based on the artificial neural network (108) Algorithm; Carrying out at least two series (128) of tests (130) based on the test queries (122) by the test system (104), a different architecture (132) of the artificial neural network (108) being used for each series (128), wherein the architectures (132) of different rows (128) differ from one another at least in a sequence of the filter sizes, with different settings being determined for at least one further parameter (134a, 134b, 134c) of the artificial neural network (108), with each test ( 130) a different setting is used within a row (128), inputs (112) being entered into the artificial neural network (108) in each of the tests (130) and a test result (136) being determined which indicates a performance of the test system (104) in processing the inputs (112) by the artificial neural network (108); Sending the test results (136) from the test system (104) to a test evaluation module (120); and evaluating the test results (136) by the test evaluation module (120).

Description

Die Erfindung betrifft ein Verfahren zum Testen unterschiedlicher Architekturen eines künstlichen neuronalen Netzes. Des Weiteren betrifft die Erfindung ein Testgenerier- und -auswertesystem, ein Testsystem, ein Computersystem, ein Computerprogramm und ein computerlesbares Medium zum Ausführen des Verfahrens.The invention relates to a method for testing different architectures of an artificial neural network. The invention also relates to a test generation and evaluation system, a test system, a computer system, a computer program and a computer-readable medium for carrying out the method.

Künstliche neuronale Netze wie beispielsweise Convolutional Neural Networks (CNNs) können auf Hardwaresystemen mit speziell angepassten Beschleunigerchips ausgeführt werden. Beispiele hierfür sind die Versal™-Plattform und die Xavier™-Plattform.Artificial neural networks such as convolutional neural networks (CNNs) can be implemented on hardware systems with specially adapted accelerator chips. Examples of this are the Versal ™ platform and the Xavier ™ platform.

Ein gegebenes Modell eines künstlichen neuronalen Netzes kann beispielsweise mit einer speziellen Portierungssoftware an ein solches Hardwaresystem angepasst werden. Die Portierungssoftware wird in der Regel vom Hersteller des Hardwaresystems bereitgestellt. Die Anpassung des Modells an das Hardwaresystem kann daher gewissen Einschränkungen unterliegen.A given model of an artificial neural network can, for example, be adapted to such a hardware system with special porting software. The porting software is usually provided by the manufacturer of the hardware system. The adaptation of the model to the hardware system can therefore be subject to certain restrictions.

Alternativ ist es möglich, das Hardwaresystem vom Hardwarehersteller speziell an das Modell anpassen zu lassen. Aus Geheimhaltungsgründen ist die Herausgabe des Modells jedoch oftmals nicht erwünscht.Alternatively, it is possible to have the hardware manufacturer adapt the hardware system specifically to the model. For reasons of confidentiality, however, the release of the model is often not desired.

Auch kann es sein, dass Herstellerangaben bezüglich einer erreichbaren Anzahl von Operationen pro Sekunde, auch int8 TOPS genannt, keinen zuverlässigen Rückschluss auf eine tatsächliche Leistungsfähigkeit des künstlichen neuronalen Netzes ermöglichen, etwa auf eine Latenz beim Verarbeiten einer einzelnen Eingabe oder einen Durchsatz von Eingaben.It is also possible that manufacturer information regarding an achievable number of operations per second, also called int8 TOPS, does not allow a reliable conclusion about the actual performance of the artificial neural network, e.g. about a latency when processing a single input or a throughput of inputs.

Um Latenzen und Durchsätze zu messen, können beispielsweise Benchmarks auf Architekturen wie ResNet-18, Resnet-50 oder MobileNet durchgeführt werden, wie etwa der MLPerf Inference Benchmark. Diese Benchmarks erlauben jedoch lediglich eine grobe Einschätzung der Fähigkeiten der zugrunde liegenden Plattform.In order to measure latencies and throughputs, benchmarks can be carried out on architectures such as ResNet-18, Resnet-50 or MobileNet, such as the MLPerf Inference Benchmark. However, these benchmarks only allow a rough assessment of the capabilities of the underlying platform.

Ein weiterer Ansatz sind automatisierte Methoden zur Erzeugung künstlicher neuronaler Netze, auch Neural Architecture Search (NAS) genannt. Jedoch ist es auch damit kaum möglich, genauere Rückschlüsse auf bestimmte Fähigkeiten der zugrunde liegenden Plattform zu ziehen.Another approach are automated methods for generating artificial neural networks, also known as Neural Architecture Search (NAS). However, even with this it is hardly possible to draw more precise conclusions about certain capabilities of the underlying platform.

Es ist Aufgabe der Erfindung, die Anpassung eines künstlichen neuronalen Netzes an ein Computersystem zu vereinfachen. Insbesondere ist es Aufgabe der Erfindung, ein verbessertes Verfahren zum Testen verschiedener Architekturen eines künstlichen neuronalen Netzes auf einem Computersystem zu schaffen.The object of the invention is to simplify the adaptation of an artificial neural network to a computer system. In particular, it is the object of the invention to create an improved method for testing different architectures of an artificial neural network on a computer system.

Diese Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche gelöst. Weitere Ausführungsformen der Erfindung ergeben sich aus den abhängigen Ansprüchen und aus der folgenden Beschreibung.This problem is solved by the subject matter of the independent claims. Further embodiments of the invention emerge from the dependent claims and from the following description.

Ein erster Aspekt der Erfindung betrifft ein computerimplementiertes Verfahren zum Testen unterschiedlicher Architekturen eines künstlichen neuronalen Netzes. Das Verfahren kann beispielsweise automatisch durch ein entsprechendes Computersystem durchgeführt werden. Das Computersystem kann Software- und/oder Hardwaremodule umfassen. Unter anderem kann das Computersystem einen Prozessor, etwa in Form einer CPU, GPU oder TPU (= Tensor Processing Unit), einen Speicher und ein Bussystem zur Datenkommunikation zwischen dem Prozessor und dem Speicher umfassen. Zusätzlich kann das Computersystem eine oder mehrere Schnittstellen zur Datenkommunikation mit Peripheriegeräten umfassen.A first aspect of the invention relates to a computer-implemented method for testing different architectures of an artificial neural network. The method can for example be carried out automatically by an appropriate computer system. The computer system can comprise software and / or hardware modules. Among other things, the computer system can include a processor, for example in the form of a CPU, GPU or TPU (= Tensor Processing Unit), a memory and a bus system for data communication between the processor and the memory. In addition, the computer system can comprise one or more interfaces for data communication with peripheral devices.

Das künstliche neuronale Netz umfasst eine definierte Abfolge von Filterschichten. Jede der Filterschichten umfasst eine definierte Anzahl trainierbarer Filter einer definierten Filtergröße zum Umwandeln einer Eingabe in eine Ausgabe.The artificial neural network comprises a defined sequence of filter layers. Each of the filter layers comprises a defined number of trainable filters of a defined filter size for converting an input into an output.

Ein künstliches neuronales Netz kann beispielsweise ein Convolutional Neural Network sein. Eine Filterschicht kann beispielsweise ein Convolutional Layer sein. An artificial neural network can be a convolutional neural network, for example. A filter layer can be a convolutional layer, for example.

Das künstliche neuronale Netz kann je nach Architektur beispielsweise mehr als zehn Filterschichten aufweisen, insbesondere etwa 18, 34 oder 50 Filterschichten. Möglich sind auch Architekturen mit mehr als 50 Filterschichten.Depending on the architecture, the artificial neural network can for example have more than ten filter layers, in particular about 18, 34 or 50 filter layers. Architectures with more than 50 filter layers are also possible.

Eine Eingabe kann eine zwei- oder dreidimensionale Eingabematrix aus Zahlenwerten sein. Die Zahlenwerte können beispielsweise Farben und/oder Helligkeiten von Bildelementen (Pixeln) eines Bildes oder eines Bildsensors codieren. Eine Tiefe der Eingabematrix kann beispielsweise einer Anzahl von Farbkanälen des Bildes bzw. des Bildsensors entsprechen.An input can be a two- or three-dimensional input matrix of numerical values. The numerical values can, for example, colors and / or brightnesses of picture elements (pixels) of an image or of an image sensor. A depth of the input matrix can correspond, for example, to a number of color channels of the image or of the image sensor.

Ein Filter kann eine zwei- oder dreidimensionale Gewichtsmatrix aus trainierbaren Gewichten sein. Die Gewichte können etwa durch Backpropagation trainierbar sein. Die Gewichtsmatrix, die auch als Kernel bezeichnet werden kann, kann beispielsweise schrittweise mit einer definierten Schrittgröße in x- und y-Richtung über eine Eingabe bewegt werden. Beispielsweise kann in jedem Schritt ein Ausgabewert berechnet werden, indem jedes der Gewichte mit einem entsprechenden Wert eines aktuell unterliegenden Ausschnitts der Eingabe multipliziert wird, die resultierenden Produkte aufsummiert werden und die resultierende Summe zu einem Bias-Wert addiert wird.A filter can be a two- or three-dimensional weight matrix made up of trainable weights. The weights can be trainable, for example, by backpropagation. The weight matrix, which can also be referred to as the kernel, can, for example, be moved step by step with a defined step size in the x and y directions via an input. For example, an output value can be calculated in each step by multiplying each of the weights with a corresponding value of a currently underlying section of the input, adding up the resulting products and adding the resulting sum to a bias value.

Die Filterschichten können aufeinanderfolgend angeordnet sein, sodass jede der Filterschichten, mit Ausnahme der vordersten Filterschicht, Ausgaben einer jeweils vorangehenden Filterschicht als Eingaben erhält.The filter layers can be arranged one after the other, so that each of the filter layers, with the exception of the foremost filter layer, receives outputs of a respective preceding filter layer as inputs.

Eine Filterschicht kann beispielsweise mehrere unterschiedliche Filter aufweisen. Die Filter können sich in ihren Gewichten voneinander unterscheiden. Jeder der unterschiedlichen Filter kann dabei einen Filterkanal oder Ausgangskanal der Filterschicht repräsentieren. Unterschiedliche Filterschichten können gleich viele oder unterschiedlich viele Filter aufweisen. Beispielsweise können die Filterschichten hinsichtlich ihrer Filteranzahl, beginnend mit einer Filterschicht mit der kleinsten Filteranzahl, in aufsteigender Reihenfolge angeordnet sein. Möglich sind jedoch auch beliebige andere Abfolgen der Filteranzahlen. Beispielsweise können die Filterschichten je nach Architektur jeweils zwischen 64 und 2048 Ausgangskanäle aufweisen. Möglich sind aber auch Filterschichten mit weniger als 64 oder mehr als 2048 Ausgangskanälen.A filter layer can have several different filters, for example. The filters can differ from one another in terms of their weights. Each of the different filters can represent a filter channel or output channel of the filter layer. Different filter layers can have the same number or a different number of filters. For example, the filter layers can be arranged in ascending order with regard to their number of filters, starting with a filter layer with the smallest number of filters. However, any other desired sequences of the numbers of filters are also possible. For example, depending on the architecture, the filter layers can each have between 64 and 2048 output channels. However, filter layers with fewer than 64 or more than 2048 output channels are also possible.

Gemäß einer Ausführungsform des Verfahrens werden Testanfragen durch ein Testgeneriermodul generiert und von dem Testgeneriermodul an ein Testsystem zum Ausführen eines auf dem künstlichen neuronalen Netz basierenden Algorithmus gesendet. Basierend auf den Testanfragen werden mindestens zwei Reihen von Tests durch das Testsystem durchgeführt.According to one embodiment of the method, test queries are generated by a test generation module and sent from the test generation module to a test system for executing an algorithm based on the artificial neural network. Based on the test requests, at least two series of tests are carried out by the test system.

Unter einem Testsystem kann ein zu testendes System verstanden werden. Das Testsystem kann Hardware- und/oder Softwaremodule umfassen. Beispielsweise kann das Testsystem mit einem speziellen Hardwarebeschleuniger zum Ausführen des Algorithmus ausgestattet sein.A test system can be understood to mean a system to be tested. The test system can comprise hardware and / or software modules. For example, the test system can be equipped with a special hardware accelerator for executing the algorithm.

Eine Testanfrage kann beispielsweise eine Anfrage für einen einzelnen Test, für eine Reihe von Tests oder für mehrere Reihen von Tests sein. Die Testanfrage kann beispielsweise Befehle umfassen, die das Testsystem dazu veranlassen, ein Computerprogramm auszuführen, das den Algorithmus ausführt.For example, a test request can be a request for a single test, for a series of tests, or for multiple series of tests. The test request can include, for example, commands that cause the test system to execute a computer program that executes the algorithm.

Der Algorithmus kann beispielsweise konfiguriert sein, um die Eingaben zu klassifizieren, Objekte in den Eingaben zu erkennen oder eine Maschinenübersetzung der Eingaben zu generieren.For example, the algorithm can be configured to classify the inputs, recognize objects in the inputs, or generate a machine translation of the inputs.

Gemäß einer Ausführungsform wird für jede Reihe eine andere Architektur des künstlichen neuronalen Netzes verwendet, wobei sich die Architekturen unterschiedlicher Reihen zumindest in einer Abfolge der Filtergrößen voneinander unterscheiden.According to one embodiment, a different architecture of the artificial neural network is used for each row, the architectures of different rows differing from one another at least in a sequence of the filter sizes.

Die Filtergröße kann beispielsweise durch eine Anzahl von Gewichten je Spalte und/oder je Zeile des Filters definiert sein. Zusätzlich kann die Filtergröße in Tiefenrichtung des Filters definiert sein.The filter size can be defined, for example, by a number of weights per column and / or per row of the filter. In addition, the filter size can be defined in the depth direction of the filter.

Beispielsweise kann eine Architektur nur Filterschichten mit Filtern einer einzigen Filtergröße umfassen. Möglich sind auch Architekturen mit Gruppen von Filterschichten, wobei sich die Filterschichten unterschiedlicher Gruppen in ihrer Filtergröße unterscheiden. Ferner sind Architekturen möglich, in der sich Filterschichten zweier Filtergrößen abwechseln. Eine weitere Möglichkeit sind Architekturen, in der die Filtergrößen, beginnend mit der größten Filtergröße, in absteigender Reihenfolge angeordnet sind. Darüber hinaus sind beliebige andere Abfolgen der Filtergrößen denkbar.For example, an architecture may only include filter layers with filters of a single filter size. Architectures with groups of filter layers are also possible, the filter layers of different groups differing in their filter size. Furthermore, architectures are possible in which filter layers of two filter sizes alternate. Another possibility are architectures in which the filter sizes are arranged in descending order, starting with the largest filter size. In addition, any other sequences of the filter sizes are conceivable.

Die Architekturen können in Architekturdefinitionsdaten hinterlegt sein, die eine Anzahl, Art und Verknüpfung der Filterschichten oder auch sonstiger Schichten des künstlichen neuronalen Netzes definieren. Beispielsweise können die Architekturdefinitionsdaten für jede der Filterschichten Parameter wie Anzahl der Eingangskanäle, Anzahl der Ausgangskanäle, Breite und Höhe der Filter, Eingabequelle, Schrittgröße, Padding, Dilatation und Pooling definieren. Unter Padding kann das Umgeben einer Eingabematrix mit einem ein- oder mehrreihigen Rahmen aus Nullen verstanden werden. Unter Dilatation kann das Vergrößern eines Filters durch Einfügen von Leerstellen verstanden werden. Unter Pooling kann ein optionales Downsampling von Ausgaben einer Filterschicht mittels einer nachfolgenden Schicht, auch Pooling Layer genannt, verstanden werden.The architectures can be stored in architecture definition data which define a number, type and linkage of the filter layers or other layers of the artificial neural network. For example, the architecture definition data for each of the filter layers can define parameters such as number of input channels, number of output channels, width and height of the filters, input source, step size, padding, dilation and pooling. Padding can be understood to mean surrounding an input matrix with a single-row or multiple-row frame made of zeros. Under dilation, the enlargement of a Filters can be understood by inserting spaces. Pooling can be understood to mean an optional downsampling of outputs from a filter layer by means of a subsequent layer, also called a pooling layer.

Denkbar ist beispielsweise, dass das Testsystem die Architekturdefinitionsdaten entsprechend den Testanfragen anpasst und/oder entsprechende hinterlegte Architekturdefinitionsdaten aus einem Speicher lädt. Zusätzlich kann das Testsystem Eingaben entsprechend den Testanfragen einlesen, etwa von einem Speicher, auf dem Datensätze vordefinierter Eingaben gespeichert sind, oder von einer Kamera, die Bilder aufnimmt und als Eingaben bereitstellt. Beispielsweise kann das Testsystem ausgeführt sein, um die Eingaben vorzuverarbeiten, beispielsweise zu skalieren, zu beschneiden oder zu normalisieren.It is conceivable, for example, that the test system adapts the architecture definition data in accordance with the test queries and / or loads corresponding stored architecture definition data from a memory. In addition, the test system can read in inputs corresponding to the test queries, for example from a memory on which data sets of predefined inputs are stored, or from a camera that records images and provides them as inputs. For example, the test system can be designed to preprocess the inputs, for example to scale, crop or normalize them.

Gemäß einer Ausführungsform werden unterschiedliche Einstellungen für mindestens einen weiteren Parameter des künstlichen neuronalen Netzes bestimmt, wobei für jeden Test innerhalb einer Reihe eine andere Einstellung verwendet wird. According to one embodiment, different settings are determined for at least one further parameter of the artificial neural network, a different setting being used for each test within a series.

Ein weiterer Parameter kann beispielsweise eine Einflussgröße sein, mit der die Leistungsfähigkeit des Testsystems, etwa dessen Latenz oder dessen Datendurchsatz, gezielt beeinflusst werden kann. Beispiele für weitere Parameter sind eine Auflösung, d. h. eine Bildgröße der Eingaben, eine Anzahl von Ausgangskanälen je Filterschicht und eine Stapelgröße, d. h. eine Anzahl von Eingaben, die in einem Stapel, also parallel, durch das Testsystem verarbeitet werden. Unter einer Einstellung kann ein vordefinierter Wert für einen oder mehrere Parameter verstanden werden. Die unterschiedlichen Einstellungen können in einem definierten Verhältnis zueinander stehen. Beispielsweise können die Einstellungen um einen definierten Prozentsatz, etwa um 50, 100 oder 200 Prozent, voneinander abweichen. Prinzipiell sollten sich die Einstellungen hinreichend stark voneinander unterscheiden.Another parameter can be, for example, an influencing variable with which the performance of the test system, for example its latency or its data throughput, can be specifically influenced. Examples of further parameters are a resolution, i. H. an image size of the inputs, a number of output channels per filter layer and a stack size, d. H. a number of inputs that are processed in a batch, i.e. in parallel, by the test system. A setting can be understood as a predefined value for one or more parameters. The different settings can have a defined relationship to one another. For example, the settings can differ from one another by a defined percentage, for example by 50, 100 or 200 percent. In principle, the settings should differ from one another sufficiently.

Unterschiedliche Reihen können beispielsweise gleich viele Tests umfassen. Dabei können die Tests unterschiedlicher Reihen beispielsweise insofern miteinander übereinstimmen, als in übereinstimmenden Tests jeweils die gleichen Einstellungen des weiteren Parameters oder der weiteren Parameter getestet werden.Different series can contain the same number of tests, for example. The tests of different series can agree with one another, for example, insofar as the same settings of the further parameter or parameters are tested in each case in corresponding tests.

Gemäß einer Ausführungsform werden in jedem der Tests Eingaben in das künstliche neuronale Netz eingegeben und es wird ein Testergebnis ermittelt, das eine Leistungsfähigkeit des Testsystems beim Verarbeiten der Eingaben durch das künstliche neuronale Netz anzeigt.According to one embodiment, inputs are entered into the artificial neural network in each of the tests and a test result is determined which indicates a performance of the test system when the inputs are processed by the artificial neural network.

Das Testergebnis kann beispielsweise eine Latenz beim Verarbeiten einer einzelnen Eingabe angeben, d. h. eine Verarbeitungszeit, die das künstliche neuronale Netz benötigt hat, um eine Eingabe mit einer gewissen Genauigkeit in eine Ausgabe umzusetzen. Alternativ oder zusätzlich kann das Testergebnis einen Durchsatz angeben, d. h. angeben, wie viele Eingaben pro Zeiteinheit durch das Testsystem verarbeitet wurden. Das Testergebnis kann jedoch auch andere Indikatoren umfassen, die geeignet sind, um eine Leitungsfähigkeit des Testsystems zu beschreiben.For example, the test result can indicate a latency in processing a single input; H. a processing time required by the artificial neural network to convert an input into an output with a certain accuracy. Alternatively or additionally, the test result can indicate a throughput, i. H. indicate how many entries per unit of time were processed by the test system. The test result can, however, also include other indicators that are suitable for describing a performance of the test system.

Gemäß einer Ausführungsform werden die Testergebnisse von dem Testsystem an ein Testauswertemodul gesendet und durch das Testauswertemodul ausgewertet.According to one embodiment, the test results are sent from the test system to a test evaluation module and are evaluated by the test evaluation module.

Beispielsweise kann das Testauswertemodul anhand der Testergebnisse ermitteln, mit welchen Architekturen oder Architekturvarianten und mit welchen Einstellungen eine besonders hohe Leistungsfähigkeit des Testsystems erreicht wurde. Dieses Wissen kann dann beispielsweise genutzt werden, um ein speziell auf das Testsystem abgestimmtes Modell eines künstlichen neuronalen Netzes zu implementieren.For example, the test evaluation module can use the test results to determine with which architectures or architecture variants and with which settings a particularly high performance of the test system was achieved. This knowledge can then be used, for example, to implement a model of an artificial neural network specially tailored to the test system.

Das Verfahren ermöglicht es, eine Vielzahl von Standardarchitekturen eines künstlichen neuronalen Netzes auf einem gegebenen Testsystem in nachvollziehbaren Schritten zu testen. Durch Variieren des künstlichen neuronalen Netzes in kleinen, aber hinreichend aussagekräftigen Stufen können genaue Rückschlüsse auf Stärken und Schwächen des Testsystems gezogen werden.The method makes it possible to test a large number of standard architectures of an artificial neural network on a given test system in comprehensible steps. By varying the artificial neural network in small but sufficiently meaningful steps, precise conclusions can be drawn about the strengths and weaknesses of the test system.

Beispielsweise kann das Verfahren dazu eingesetzt werden, Testsysteme mit unterschiedlichen Hardwarekonfigurationen hinsichtlich ihrer Leistungsfähigkeit zu testen und anschließend miteinander zu vergleichen. Somit ist es möglich, aus einer Menge gegebener Hardwarekonfigurationen diejenigen auszuwählen, die für ein gegebenes Modell eines künstlichen neuronalen Netzes besonders gut geeignet sind.For example, the method can be used to test test systems with different hardware configurations with regard to their performance and then to compare them with one another. It is thus possible to select from a set of given hardware configurations those which are particularly well suited for a given model of an artificial neural network.

Gemäß einer Ausführungsform werden mindestens drei unterschiedliche Einstellungen für den mindestens einen weiteren Parameter bestimmt.According to one embodiment, at least three different settings are determined for the at least one further parameter.

Gemäß einer Ausführungsform werden unterschiedliche Einstellungen für mindestens zwei weitere Parameter des künstlichen neuronalen Netzes bestimmt. Dabei werden für jeden der mindestens zwei weiteren Parameter mindestens zwei unterschiedliche Einstellungen bestimmt. Ferner werden mögliche Einstellungskombinationen zwischen den jeweiligen Einstellungen der mindestens zwei weiteren Parameter ermittelt. Für jeden Test innerhalb einer Reihe wird dann eine andere Einstellungskombination verwendet.According to one embodiment, different settings are determined for at least two further parameters of the artificial neural network. At least two different settings are determined for each of the at least two further parameters. Furthermore, possible setting combinations between the respective settings of the at least two further parameters are determined. A different combination of settings is then used for each test within a series.

Gemäß einer Ausführungsform wird zwischen Tests, die innerhalb einer Reihe aufeinanderfolgen, nur einer der mindestens zwei weiteren Parameter in seiner Einstellung geändert. Damit können Auswirkungen mehrerer Parameter auf die Leistungsfähigkeit des Testsystems getrennt voneinander untersucht werden.According to one embodiment, only one of the at least two further parameters is changed in its setting between tests that follow one another within a series. In this way, the effects of several parameters on the performance of the test system can be examined separately from one another.

Alternativ können zwischen den Tests zwei oder mehr als zwei weitere Parameter in ihrer Einstellung geändert werden. Dadurch können Wechselwirkungen zwischen diesen Parametern untersucht werden.Alternatively, the setting of two or more than two further parameters can be changed between the tests. This allows interactions between these parameters to be investigated.

Gemäß einer Ausführungsform werden die unterschiedlichen Einstellungen für mindestens einen der folgenden Parameter bestimmt: eine Anzahl von Eingaben, die innerhalb eines Aktualisierungsschrittes in das künstliche neuronale Netz eingegeben wird; eine jeweilige Matrixgröße der Eingaben; eine jeweilige Anzahl von Ausgangskanälen der Filterschichten. Jedem der Ausgangskanäle einer Filterschicht kann mindestens ein Filter der Filterschicht zugeordnet sein. Unter einer Matrixgröße kann beispielsweise eine Anzahl von Elementen je Zeile und/oder je Spalte einer Eingabematrix verstanden werden. Zusätzlich kann die Matrixgröße eine Tiefe der Eingabematrix, etwa eine Anzahl von Farbkanälen der Eingabe, definieren. Die Matrixgröße kann beispielsweise auch als (Bild-)Auflösung oder Bildgröße bezeichnet werden. Die Anzahl der Ausgangskanäle kann gleich der Anzahl unterschiedlicher Filter einer Filterschicht sein.According to one embodiment, the different settings are determined for at least one of the following parameters: a number of inputs that are input into the artificial neural network within an update step; a respective matrix size of the inputs; a respective number of output channels of the filter layers. At least one filter of the filter layer can be assigned to each of the output channels of a filter layer. A matrix size can be understood to mean, for example, a number of elements per row and / or per column of an input matrix. In addition, the matrix size can define a depth of the input matrix, such as a number of color channels of the input. The matrix size can also be referred to as (image) resolution or image size, for example. The number of output channels can be the same as the number of different filters in a filter layer.

Gemäß einer Ausführungsform ist das künstliche neuronale Netz ein Convolutional Neural Network und jede der Filterschichten ein Convolutional Layer. Ein Convolutional Layer kann eine Filterschicht mit einer oder mehrerer Gewichtsmatrizen sein, wie weiter oben beschrieben. Das künstliche neuronale Netz umfasst eine Aktivierungsschicht und/oder eine Batch Normalization. Aktivierungsfunktion ist beispielsweise die rectified linear unit (ReLU).According to one embodiment, the artificial neural network is a convolutional neural network and each of the filter layers is a convolutional layer. A convolutional layer can be a filter layer with one or more weight matrices, as described above. The artificial neural network comprises an activation layer and / or a batch normalization. Activation function is, for example, the rectified linear unit (ReLU).

Gemäß einer Ausführungsform werden mindestens zehn Reihen von Tests basierend auf den Testanfragen durch das Testsystem durchgeführt.According to one embodiment, at least ten series of tests based on the test requests are carried out by the test system.

Gemäß einer Ausführungsform wird basierend auf den Testergebnissen eine Rangfolge der Architekturen bestimmt. Basierend auf der Rangfolge wird dann eine Empfehlung ausgegeben. Die Empfehlung kann beispielsweise Informationen über eine oder mehrere Architekturen enthalten, mit denen eine vergleichsweise hohe Leitungsfähigkeit des Testsystems erreicht wurde.According to one embodiment, a ranking of the architectures is determined based on the test results. A recommendation is then made based on the ranking. The recommendation can, for example, contain information about one or more architectures with which a comparatively high performance of the test system was achieved.

Ein zweiter Aspekt der Erfindung betrifft ein Testgenerier- und -auswertesystem. Das Testgenerier- und -auswertesystem umfasst ein Testgeneriermodul, das ausgeführt ist, um Testanfragen zu generieren und an ein Testsystem gemäß einer Ausführungsform eines dritten Aspekt der Erfindung zu senden. Des Weiteren umfasst das Testgenerier- und -auswertesystem ein Testauswertemodul, das ausgeführt ist, um Testergebnisse von dem Testsystem zu empfangen und auszuwerten. Die Testanfragen umfassen Befehle, die das Testsystem beim Ausführen der Befehle dazu veranlassen, in einem Verfahren gemäß einer Ausführungsform des ersten Aspekts der Erfindung Tests durchzuführen und entsprechende Testergebnisse an das Testauswertemodul zu senden.A second aspect of the invention relates to a test generation and evaluation system. The test generation and evaluation system comprises a test generation module which is designed to generate test queries and to send them to a test system according to an embodiment of a third aspect of the invention. Furthermore, the test generation and evaluation system comprises a test evaluation module which is designed to receive and evaluate test results from the test system. The test requests include commands which, when the commands are executed, cause the test system to carry out tests in a method according to an embodiment of the first aspect of the invention and to send corresponding test results to the test evaluation module.

Merkmale des weiter oben und im Folgenden beschriebenen Verfahrens können auch Merkmale des Testgenerier- und -auswertesystems sein und umgekehrt.Features of the method described above and below can also be features of the test generation and evaluation system and vice versa.

Ein dritter Aspekt der Erfindung betrifft ein Testsystem, das ausgeführt ist, um Testanfragen von einem Testgenerier- und -auswertesystem gemäß einer Ausführungsform des zweiten Aspekts der Erfindung zu empfangen, in einem Verfahren gemäß einer Ausführungsform des ersten Aspekts der Erfindung Tests durchzuführen und entsprechende Testergebnisse an das Testgenerier- und -auswertesystem zu senden.A third aspect of the invention relates to a test system which is designed to receive test requests from a test generation and evaluation system according to an embodiment of the second aspect of the invention, to carry out tests in a method according to an embodiment of the first aspect of the invention and to display corresponding test results to send the test generation and evaluation system.

Merkmale des weiter oben und im Folgenden beschriebenen Verfahrens können auch Merkmale des Testsystems sein und umgekehrt.Features of the method described above and below can also be features of the test system and vice versa.

Ein vierter Aspekt der Erfindung betrifft ein Computersystem, das ein Testgenerier- und -auswertesystem gemäß einer Ausführungsform des zweiten Aspekts der Erfindung und ein Testsystem gemäß einer Ausführungsform des dritten Aspekts der Erfindung umfasst.A fourth aspect of the invention relates to a computer system which comprises a test generation and evaluation system according to an embodiment of the second aspect of the invention and a test system according to an embodiment of the third aspect of the invention.

Merkmale des weiter oben und im Folgenden beschriebenen Verfahrens können auch Merkmale des Computersystems sein und umgekehrt.Features of the method described above and below can also be features of the computer system and vice versa.

Weitere Aspekte der Erfindung betreffen ein Computerprogramm, das, wenn es auf einem Prozessor ausgeführt wird, das weiter oben und im Folgenden beschriebene Verfahren ausführt, sowie ein computerlesbares Medium, auf dem ein derartiges Computerprogramm gespeichert ist. Das computerlesbare Medium kann ein flüchtiger oder nicht flüchtiger Datenspeicher sein. Beispielsweise kann es sich bei dem computerlesbaren Medium um eine Festplatte, ein USB-Speichergerät, einen RAM, ROM, EPROM oder Flash-Speicher handeln. Das computerlesbare Medium kann auch ein einen Download eines Programmcodes ermöglichendes Datenkommunikationsnetzwerk wie etwa das Internet oder eine Datenwolke (Cloud) sein.Further aspects of the invention relate to a computer program which, when it is executed on a processor, executes the method described above and below, as well as a computer-readable medium on which such a computer program is stored. The computer readable medium can be volatile or non-volatile data storage. For example, the computer-readable medium can be a hard disk, a USB storage device, a RAM, ROM, EPROM or flash memory. The computer-readable medium can also be a data communication network that enables a program code to be downloaded, such as the Internet or a data cloud.

Merkmale des weiter oben und im Folgenden beschriebenen Verfahrens können auch Merkmale des Computerprogramms und/oder des computerlesbaren Mediums sein.Features of the method described above and below can also be features of the computer program and / or the computer-readable medium.

Im Folgenden werden Ausführungsbeispiele der Erfindung mit Bezug auf die beiliegenden Figuren detailliert beschrieben.In the following, exemplary embodiments of the invention are described in detail with reference to the accompanying figures.

Die in den Figuren verwendeten Bezugszeichen und ihre Bedeutung sind in zusammenfassender Form in der Liste der Bezugszeichen aufgeführt. Grundsätzlich sind identische oder ähnliche Teile mit den gleichen Bezugszeichen versehen.The reference symbols used in the figures and their meaning are summarized in the list of reference symbols. In principle, identical or similar parts are provided with the same reference symbols.

1 zeigt schematisch ein Computersystem 100 gemäß einem Ausführungsbeispiel der Erfindung. 1 shows schematically a computer system 100 according to an embodiment of the invention.

Das Computersystem 100 umfasst ein Testgenerier- und -auswertesystem 102 und ein Testsystem 104. Das Testsystem 104 umfasst einen Prozessor 106, der einen auf einem künstlichen neuronalen Netz 108 basierenden Algorithmus ausführt. Das Netz 108 ist aus mehreren aufeinanderfolgenden Filterschichten 110 aufgebaut, die konfiguriert sind, um eine Eingabe 112 in eine Ausgabe 114 umzuwandeln. Hierzu umfasst jede der Filterschichten 110 mehrere Filter 116 einer definierten Filtergröße, beispielsweise einer definierten Breite, Höhe und/oder Tiefe. Die Filter 116 wandern schrittweise in x- und y-Richtung über die Eingabe 112 und tasten die Eingabe 112 über deren gesamte Tiefe ab. Möglich ist auch, dass nur bestimmte Tiefenschichten der Eingabe 112 durch die Filter 116 abtastet werden. Mit Ausnahme der vordersten Filterschicht 110 erhalten die Filterschichten 110 jeweils die Ausgabe einer vorangehenden Filterschicht 110 als Eingabe. Die hinterste Filterschicht (nicht gezeigt) kann dann beispielsweise die Ausgabe 114 ausgeben. Die Ausgabe 114 kann auch von einer anderen Schicht des Netzes 108 ausgegeben werden, etwa von einem Fully-Connected Layer, dessen Elemente jeweils mit sämtlichen Elementen einer vorangehenden Schicht verbunden sind.The computer system 100 comprises a test generation and evaluation system 102 and a test system 104 . The test system 104 includes a processor 106 , the one on an artificial neural network 108 based algorithm. The network 108 consists of several successive filter layers 110 constructed that are configured to take an input 112 in one issue 114 to convert. This includes each of the filter layers 110 multiple filters 116 a defined filter size, for example a defined width, height and / or depth. The filters 116 move step by step in the x and y directions over the input 112 and key the input 112 over their entire depth. It is also possible that only certain depth layers of the input 112 through the filters 116 be scanned. With the exception of the foremost filter layer 110 preserve the filter sheets 110 in each case the output of a preceding filter layer 110 as input. The rearmost filter layer (not shown) can then, for example, the output 114 output. The edition 114 can also be from another layer of the network 108 output, for example from a fully connected layer, the elements of which are connected to all elements of a previous layer.

Die Filterschichten 110 können sich in ihrer Filtergröße und/oder ihrer Filteranzahl, d. h. in der Anzahl ihrer Ausgangskanäle, voneinander unterscheiden. Die Filterschichten 110 sind so angeordnet, dass sich eine definierte Abfolge der Filtergrößen ergibt. Durch Variieren der Abfolge der Filtergrößen können unterschiedliche Architekturen des Netzes 108 implementiert werden.The filter sheets 110 can differ from one another in their filter size and / or their number of filters, ie in the number of their output channels. The filter sheets 110 are arranged in such a way that there is a defined sequence of filter sizes. By varying the sequence of the filter sizes, different architectures of the network 108 implemented.

Das Netz 108 kann beispielsweise ein Convolutional Neural Network sein, wobei jede der Filterschichten 110 ein Convolutional Layer des Convolutional Neural Network sein kann.The network 108 can for example be a convolutional neural network, with each of the filter layers 110 can be a convolutional layer of the convolutional neural network.

Das Testgenerier- und -auswertesystem 102 umfasst ein Testgeneriermodul 118 und ein Testauswertemodul 120, die als Hardware- und/oder Softwaremodule implementiert sein können. Das Testgeneriermodul 118 generiert Testanfragen 122 und sendet diese an das Testsystem 102. Jede der Testanfragen 122 umfasst Befehle, die den Prozessor 106 dazu veranlassen, den Algorithmus in mehreren Testläufen mit unterschiedlichen Konfigurationen auszuführen. Dabei liest das Testsystem 104 entsprechend den Testanfragen 122 Eingaben 112 von einem Speicher 124 ein und gibt diese in das Netz 108 ein.The test generation and evaluation system 102 comprises a test generation module 118 and a test evaluation module 120 that can be implemented as hardware and / or software modules. The test generation module 118 generates test requests 122 and sends it to the test system 102 . Any of the test requests 122 includes instructions that the processor 106 cause the algorithm to be run in several test runs with different configurations. The test system reads 104 according to the test requests 122 Inputs 112 from a memory 124 and puts it into the network 108 a.

Auf dem Speicher 124 können mehrere Datensätze 126 vordefinierter Eingaben 112 gespeichert sein. Die Eingaben 112 unterschiedlicher Datensätze 126 können sich beispielsweise in ihrer Auflösung voneinander unterscheiden.On the attic 124 can have multiple records 126 predefined inputs 112 be saved. The inputs 112 different data sets 126 can differ from one another, for example, in terms of their resolution.

Alternativ oder zusätzlich können die Eingaben 112 von einer Kamera eingelesen werden. Bevor die Eingaben in das Netz 108 eingegeben werden, können die Eingaben 122 beispielsweise durch das Testsystem 104 vorverarbeitet werden.Alternatively or additionally, the entries 112 can be read in by a camera. Before entering the network 108 can be entered 122 for example through the test system 104 be preprocessed.

Beim Ausführen der Befehle durch den Prozessor 106 werden zwei oder mehr Reihen 128 von Tests 130 auf dem Testsystem 104 durchgeführt (die Reihen 128 sind hier als Listen, die Tests 130 als Zeilen der Listen dargestellt). In jeder der Reihen 128 wird eine andere Architektur 132 des Netzes 108 getestet. Die Architekturen 132 unterschiedlicher Reihen 128 unterscheiden sich dabei zumindest in der Abfolge ihrer Filtergrößen.When the processor executes the instructions 106 become two or more rows 128 of tests 130 on the test system 104 carried out (the ranks 128 are here as lists, the tests 130 represented as lines of the lists). In each of the rows 128 will be a different architecture 132 of the network 108 tested. The architectures 132 different ranks 128 differ at least in the sequence of their filter sizes.

Die Architekturen 132 werden in jedem der Tests 130 mit einer anderen Einstellungskombination getestet. Beispielsweise können für jeden von drei weiteren Parametern 134a, 134b, 134c des Netzes 108 zwei oder mehr Einstellungen sowie mögliche Einstellungskombinationen zwischen den jeweiligen Einstellungen bestimmt werden. In jedem der Tests 130 kann dann eine der möglichen Einstellungskombinationen getestet werden. Die Tests 130 unterschiedlicher Reihen 128 können beispielsweise darin übereinstimmen, dass jeweils die gleichen Einstellungskombinationen getestet werden.The architectures 132 will be in each of the tests 130 tested with a different combination of settings. For example, for each of three additional parameters 134a , 134b , 134c of the network 108 two or more settings as well as possible setting combinations between the respective settings can be determined. In each of the tests 130 one of the possible setting combinations can then be tested. The tests 130 different ranks 128 can agree, for example, that the same setting combinations are tested in each case.

Die weiteren Parameter 134a, 134b, 134c können beispielsweise eine jeweilige Anzahl von Ausgangskanälen der Filterschichten 110, eine Auflösung der Eingaben 112 bzw. eine Stapelgröße sein. Letztere gibt an, wie viele Eingaben gleichzeitig, genauer innerhalb eines Aktualisierungsschrittes, in das Netz 108 eingegeben werden.The other parameters 134a , 134b , 134c can, for example, a respective number of output channels of the filter layers 110 , a resolution of the inputs 112 or be a stack size. The latter indicates how many inputs simultaneously, more precisely within an update step, into the network 108 can be entered.

Beispielsweise ist es möglich, dass zwischen aufeinanderfolgenden Tests 130 einer Reihe 128 jeweils nur ein einziger der drei weiteren Parameter 134a, 134b, 134c geändert wird. Dadurch können die Einflüsse einzelner Einstellungen besser nachvollzogen werden. Es können jedoch auch zwei oder mehr als zwei weitere Parameter 134a, 134b, 134c gleichzeitig geändert werden, um Wechselwirkungen zwischen den betreffenden Parametern zu untersuchen.For example, it is possible that between successive tests 130 a number 128 only one of the three other parameters 134a , 134b , 134c will be changed. This enables the influences of individual settings to be better understood. However, two or more than two further parameters can also be used 134a , 134b , 134c can be changed at the same time in order to investigate interactions between the relevant parameters.

In jedem der Tests 130 werden entsprechende Eingaben 112 in das Netz 108 eingegeben. Zudem wird ein Testergebnis 136 generiert, das eine Leistungsfähigkeit des Testsystems 104, etwa eine Latenz oder einen Durchsatz, beim Verarbeiten der Eingaben 112 durch das Netz 108 anzeigt. Die Testergebnisse 136 werden entweder gesammelt oder einzeln an das Testauswertemodul 120 gesendet, das die Testergebnisse 136 dann auswertet.In each of the tests 130 corresponding entries are made 112 into the network 108 entered. There is also a test result 136 that generates a performance of the test system 104 , such as latency or throughput, when processing the inputs 112 through the network 108 indicates. The test results 136 are either collected or sent individually to the test evaluation module 120 that sent the test results 136 then evaluates.

Beispielsweise kann das Testauswertemodul 120 basierend auf den Testergebnissen 136 eine Rangfolge der Architekturen 132 ermitteln und basierend auf der ermittelten Rangfolge eine Empfehlung 138 ausgeben, die anzeigt, welche der Architekturen 132 mit welchen Einstellungen für das betreffende Testsystem 104 besonders geeignet ist.For example, the test evaluation module 120 based on the test results 136 a hierarchy of architectures 132 determine and based on the determined ranking a recommendation 138 that shows which of the architectures 132 with which settings for the relevant test system 104 is particularly suitable.

Es ist möglich, dass das Netz 108 nur besonders rechenintensive Schichten, die zur Merkmalsextraktion dienen, wie etwa Convolutional Layers, enthält. Andersartige Schichten, beispielsweise Schichten zum Region-of-Interest Pooling oder Fully-Connected Layers, können von den Tests 130 ausgeschlossen werden.It is possible that the network 108 contains only particularly computationally intensive layers that are used for feature extraction, such as convolutional layers. Different types of layers, for example layers for region-of-interest pooling or fully-connected layers, can be used in the tests 130 be excluded.

Beispielsweise kann als Testbasis die Architektur ResNet-34 ohne Skip Connections und ohne erste Schicht mit 7×7-Filter verwendet werden. Anders ausgedrückt kann eine solche Testbasis beispielsweise 34 Filterschichten enthalten, wobei sich die Anzahl der Ausgangskanäle der Filterschichten und die Abfolge der Filtergrößen, d. h. das Downsizing der Aktivierungsschichten, an ResNet-34 orientieren können.For example, the ResNet-34 architecture without skip connections and without a first layer with a 7 × 7 filter can be used as a test basis. In other words, such a test base can contain, for example, 34 filter layers, the number of output channels of the filter layers and the sequence of the filter sizes, i. H. the downsizing of the activation layers, based on ResNet-34.

Beispiele für unterschiedliche Architekturen 132 des Netzes 108, hier in Form eines Convolutional Neural Network, sind in der nachfolgenden Tabelle 1 zusammengefasst. Jede Zeile in der Spalte „Filtergröße“ repräsentiert ein Netz mit mehreren, im Fall von ResNet-34 beispielsweise 34 Filterschichten 110. Examples of different architectures 132 of the network 108 , here in the form of a convolutional neural network, are summarized in Table 1 below. Each line in the "Filter size" column represents a network with several, in the case of ResNet-34 for example 34 filter layers 110 .

Aufeinanderfolgende Filterschichten 110 unterschiedlicher Filtergrößen sind mit Strichpunkten abgetrennt. Filtergrößen mit „und“-Verknüpfung bedeuten, dass die betreffenden Filter gleichzeitig aktiv sind und deren Ausgaben zusammengeführt werden.Successive filter layers 110 different filter sizes are separated with semicolons. Filter sizes with an "and" link mean that the relevant filters are active at the same time and their outputs are merged.

Beispiele für mögliche Einstellungen der weiteren Parameter 134a, 134b, 134c sind in der nachfolgenden Tabelle 2 zusammengefasst. Tabelle 1: Konvolutionstyp Beschreibung Filtergröße Standardkonvolution Standard 1 × 1 3 × 3 5 × 5 7 × 7 Bottleneck 1 × 1; 3 × 3; 1 × 1 1 × 1; 5 × 5; 1 × 1 1 × 1; 7 × 7; 1 × 1 Räumlich trennbare Konvolution („Spatially Separable Convolution“) Standard 1 × 3; 3 × 1 1 × 5; 5 × 1 1 × 7; 7 × 1 Bottleneck 1 × 1; 1 × 3 und 3 × 1; 1 × 1 1 × 1; 1 × 5 und 5 × 1; 1 × 1 1 × 1; 1 × 7 und 7 × 1; 1 × 1 Tiefenweise trennbare Konvolution („Depthwise Separable Convolution“) Standard 3 × 3 5 × 5 7 × 7 Bottleneck 1 × 1; 3 × 3; 1 × 1 1 × 1; 5 × 5; 1 × 1 1 × 1; 7 × 7; 1 × 1 Dilatierte Konvolution („Dilated Convolution“) Standard 5 × 5 mit I = 2 (= 1 Leerstelle zwischen Elementen des Filters) Tabelle 2: Parameter Einstellung Stapelgröße („Batch Size“) 1 4 8 Auflösung der Eingaben 224 × 224 1280 × 720 (HD) 1920 × 1080 (FHD) Anzahl n der Ausgangskanäle n = x × 2 n = x n = x × 0,5 Examples of possible settings for the other parameters 134a , 134b , 134c are summarized in Table 2 below. Table 1: Convolution type description Filter size Standard convolution default 1 × 1 3 × 3 5 × 5 7 × 7 Bottleneck 1 × 1; 3 × 3; 1 × 1 1 × 1; 5 × 5; 1 × 1 1 × 1; 7 × 7; 1 × 1 Spatially Separable Convolution default 1 × 3; 3 × 1 1 × 5; 5 × 1 1 × 7; 7 × 1 Bottleneck 1 × 1; 1 × 3 and 3 × 1; 1 × 1 1 × 1; 1 × 5 and 5 × 1; 1 × 1 1 × 1; 1 × 7 and 7 × 1; 1 × 1 Depthwise Separable Convolution default 3 × 3 5 × 5 7 × 7 Bottleneck 1 × 1; 3 × 3; 1 × 1 1 × 1; 5 × 5; 1 × 1 1 × 1; 7 × 7; 1 × 1 Dilated Convolution ("Dilated Convolution") default 5 × 5 with I = 2 (= 1 space between elements of the filter) Table 2: parameter setting Batch size 1 4th 8th Resolution of the entries 224 × 224 1280 × 720 (HD) 1920 × 1080 (FHD) Number n of output channels n = x × 2 n = x n = x × 0.5

Mit 17 unterschiedlichen Architekturen und 27 möglichen Einstellungskombinationen ergeben sich insgesamt 459 zu testende Variationen.With 17 different architectures and 27 possible setting combinations, there are a total of 459 variations to be tested.

Ergänzend wird darauf hingewiesen, dass „umfassend“ keine anderen Elemente oder Schritte ausschließt und „eine“ oder „ein“ keine Vielzahl ausschließt. Ferner wird darauf hingewiesen, dass Merkmale oder Schritte, die mit Verweis auf eines der obigen Ausführungsbeispiele beschrieben worden sind, auch in Kombination mit anderen Merkmalen oder Schritten anderer der obigen Ausführungsbeispiele verwendet werden können. Bezugszeichen in den Ansprüchen sind nicht als Einschränkung anzusehen.In addition, it should be noted that “comprehensive” does not exclude any other elements or steps and “a” or “a” does not exclude a plurality. It is further pointed out that features or steps that have been described with reference to one of the above exemplary embodiments can also be used in combination with other features or steps of other of the above exemplary embodiments. Reference signs in the claims are not to be regarded as a restriction.

BezugszeichenlisteList of reference symbols

100100
ComputersystemComputer system
102102
Testgenerier- und -auswertesystemTest generation and evaluation system
104104
TestsystemTest system
106106
Prozessorprocessor
108108
künstliches neuronales Netzartificial neural network
110110
FilterschichtFilter layer
112112
Eingabeinput
114114
Ausgabeoutput
116116
Filterfilter
118118
TestgeneriermodulTest generation module
120120
TestauswertemodulTest evaluation module
122122
TestanfrageTest request
124124
SpeicherStorage
126126
Datensatzrecord
128128
Reiheline
130130
Testtest
132132
Architekturarchitecture
134a134a
erster weitere Parameterfirst further parameter
134b134b
zweiter weiterer Parametersecond further parameter
134c134c
dritter weiterer Parameterthird further parameter
136136
TestergebnisTest result
138138
Empfehlungrecommendation

Claims (13)

Verfahren zum Testen unterschiedlicher Architekturen (132) eines künstlichen neuronalen Netzes (108), wobei das künstliche neuronale Netz (108) eine definierte Abfolge von Filterschichten (110) umfasst, wobei jede der Filterschichten (110) eine definierte Anzahl trainierbarer Filter (116) einer definierten Filtergröße zum Umwandeln einer Eingabe (112) in eine Ausgabe (114) umfasst, wobei das Verfahren umfasst: Generieren von Testanfragen (122) durch ein Testgeneriermodul (118) und Senden der Testanfragen (122) von dem Testgeneriermodul (118) an ein Testsystem (104) zum Ausführen eines auf dem künstlichen neuronalen Netz (108) basierenden Algorithmus; Durchführen mindestens zweier Reihen (128) von Tests (130) basierend auf den Testanfragen (122) durch das Testsystem (104), wobei für jede Reihe (128) eine andere Architektur (132) des künstlichen neuronalen Netzes (108) verwendet wird, wobei sich die Architekturen (132) unterschiedlicher Reihen (128) zumindest in einer Abfolge der Filtergrößen voneinander unterscheiden, wobei unterschiedliche Einstellungen für mindestens einen weiteren Parameter (134a, 134b, 134c) des künstlichen neuronalen Netzes (108) bestimmt werden, wobei für jeden Test (130) innerhalb einer Reihe (128) eine andere Einstellung verwendet wird, wobei in jedem der Tests (130) Eingaben (112) in das künstliche neuronale Netz (108) eingegeben werden und ein Testergebnis (136) ermittelt wird, das eine Leistungsfähigkeit des Testsystems (104) beim Verarbeiten der Eingaben (112) durch das künstliche neuronale Netz (108) anzeigt; Senden der Testergebnisse (136) von dem Testsystem (104) an ein Testauswertemodul (120); und Auswerten der Testergebnisse (136) durch das Testauswertemodul (120).A method for testing different architectures (132) of an artificial neural network (108), the artificial neural network (108) comprising a defined sequence of filter layers (110), each of the filter layers (110) having a defined number of trainable filters (116) a defined filter size for converting an input (112) to an output (114), the method comprising: Generating test requests (122) by a test generation module (118) and sending the test requests (122) from the test generation module (118) to a test system (104) for executing an algorithm based on the artificial neural network (108); Carrying out at least two series (128) of tests (130) based on the test queries (122) by the test system (104), wherein a different architecture (132) of the artificial neural network (108) is used for each row (128), the architectures (132) of different rows (128) differing from one another at least in a sequence of the filter sizes, different settings for at least one further parameter (134a, 134b, 134c) of the artificial neural network (108) being determined, a different setting being used for each test (130) within a row (128), wherein in each of the tests (130) inputs (112) are entered into the artificial neural network (108) and a test result (136) is determined which indicates a performance of the test system (104) when processing the inputs (112) by the artificial neural network Displays network (108); Sending the test results (136) from the test system (104) to a test evaluation module (120); and Evaluation of the test results (136) by the test evaluation module (120). Verfahren nach Anspruch 1, wobei mindestens drei unterschiedliche Einstellungen für den mindestens einen weiteren Parameter (134a, 134b, 134c) bestimmt werden.Procedure according to Claim 1 , at least three different settings for the at least one further parameter (134a, 134b, 134c) being determined. Verfahren nach einem der vorhergehenden Ansprüche, wobei unterschiedliche Einstellungen für mindestens zwei weitere Parameter (134a, 134b, 134c) des künstlichen neuronalen Netzes (108) bestimmt werden, wobei für jeden der mindestens zwei weiteren Parameter (134a, 134b, 134c) mindestens zwei unterschiedliche Einstellungen bestimmt werden; wobei mögliche Einstellungskombinationen zwischen den jeweiligen Einstellungen der mindestens zwei weiteren Parameter (134a, 134b, 134c) ermittelt werden; wobei für jeden Test (130) innerhalb einer Reihe (128) eine andere Einstellungskombination verwendet wird.Method according to one of the preceding claims, wherein different settings are determined for at least two further parameters (134a, 134b, 134c) of the artificial neural network (108), with at least two different settings for each of the at least two further parameters (134a, 134b, 134c) Settings are determined; possible setting combinations between the respective settings of the at least two further parameters (134a, 134b, 134c) being determined; a different combination of settings being used for each test (130) within a row (128). Verfahren nach Anspruch 3, wobei zwischen Tests (130), die innerhalb einer Reihe (128) aufeinanderfolgen, nur einer der mindestens zwei weiteren Parameter (134a, 134b, 134c) in seiner Einstellung geändert wird.Procedure according to Claim 3 wherein between tests (130) which follow one another within a series (128), only one of the at least two further parameters (134a, 134b, 134c) is changed in its setting. Verfahren nach einem der vorhergehenden Ansprüche, wobei die unterschiedlichen Einstellungen für mindestens einen der folgenden Parameter (134a, 134b, 134c) bestimmt werden: eine Anzahl von Eingaben (112), die innerhalb eines Aktualisierungsschrittes in das künstliche neuronale Netz (108) eingegeben wird; eine jeweilige Matrixgröße der Eingaben (112); eine jeweilige Anzahl von Ausgangskanälen der Filterschichten (110).Method according to one of the preceding claims, wherein the different settings are determined for at least one of the following parameters (134a, 134b, 134c): a number of inputs (112) which are input into the artificial neural network (108) within an update step; a respective matrix size of the inputs (112); a respective number of output channels of the filter layers (110). Verfahren nach einem der vorhergehenden Ansprüche, wobei das künstliche neuronale Netz (108) ein Convolutional Neural Network ist und jede der Filterschichten (110) ein Convolutional Layer ist.Method according to one of the preceding claims, wherein the artificial neural network (108) is a convolutional neural network and each of the filter layers (110) is a convolutional layer. Verfahren nach einem der vorhergehenden Ansprüche, wobei mindestens zehn Reihen (128) von Tests (130) basierend auf den Testanfragen (122) durch das Testsystem (104) durchgeführt werden.Method according to one of the preceding claims, wherein at least ten series (128) of tests (130) based on the test queries (122) are carried out by the test system (104). Verfahren nach einem der vorhergehenden Ansprüche, wobei basierend auf den Testergebnissen (136) eine Rangfolge der Architekturen (132) bestimmt wird; wobei basierend auf der Rangfolge eine Empfehlung (138) ausgegeben wird.Method according to one of the preceding claims, wherein a ranking of the architectures (132) is determined based on the test results (136); wherein a recommendation (138) is issued based on the ranking. Testgenerier- und -auswertesystem (102), umfassend: ein Testgeneriermodul (118), das ausgeführt ist, um Testanfragen (122) zu generieren und an ein Testsystem (104) zum Ausführen eines auf einem künstlichen neuronalen Netz (108) basierenden Algorithmus zu senden, wobei das künstliche neuronale Netz (108) eine definierte Abfolge von Filterschichten (110) umfasst und jede der Filterschichten (110) eine definierte Anzahl trainierbarer Filter (116) einer definierten Filtergröße zum Umwandeln einer Eingabe (112) in eine Ausgabe (114) umfasst; und ein Testauswertemodul (120), das ausgeführt ist, um Testergebnisse (136) von dem Testsystem (104) zu empfangen und auszuwerten; wobei die Testanfragen (122) Befehle umfassen, die das Testsystem (104) beim Ausführen der Befehle dazu veranlassen, mindestens zwei Reihen (128) von Tests (130) durchzuführen und Testergebnisse (136) an das Testauswertemodul (120) zu senden, wobei für jede Reihe (128) eine andere Architektur (132) des künstlichen neuronalen Netzes (108) verwendet wird, wobei sich die Architekturen (132) unterschiedlicher Reihen (128) zumindest in einer Abfolge der Filtergrößen voneinander unterscheiden, wobei unterschiedliche Einstellungen für mindestens einen weiteren Parameter (134a, 134b, 134c) des künstlichen neuronalen Netzes (108) bestimmt werden, wobei für jeden Test (130) innerhalb einer Reihe (128) eine andere Einstellung verwendet wird, wobei in jedem der Tests (130) Eingaben (112) in das künstliche neuronale Netz (108) eingegeben werden und ein Testergebnis (136) ermittelt wird, das eine Leistungsfähigkeit des Testsystems (104) beim Verarbeiten der Eingaben (112) durch das künstliche neuronale Netz (108) anzeigt.A test generation and evaluation system (102) comprising: a test generation module (118) which is designed to generate test requests (122) and to send them to a test system (104) for executing an algorithm based on an artificial neural network (108) wherein the artificial neural network (108) comprises a defined sequence of filter layers (110) and each of the filter layers (110) comprises a defined number of trainable filters (116) of a defined filter size for converting an input (112) into an output (114) ; and a test evaluation module (120) which is designed to receive and evaluate test results (136) from the test system (104); wherein the test requests (122) comprise commands which, when executing the commands, cause the test system (104) to perform at least two series (128) of tests (130) and to send test results (136) to the test evaluation module (120), wherein for each row (128) a different architecture (132) of the artificial neural network (108) is used, the architectures (132) of different rows (128) differing from one another at least in a sequence of the filter sizes, wherein different settings are determined for at least one further parameter (134a, 134b, 134c) of the artificial neural network (108), a different setting being used for each test (130) within a row (128), wherein in each of the tests ( 130) inputs (112) are entered into the artificial neural network (108) and a test result (136) is determined which indicates a performance of the test system (104) when processing the inputs (112) by the artificial neural network (108). Testsystem (104) zum Ausführen eines auf einem künstlichen neuronalen Netz (108) basierenden Algorithmus, wobei das künstliche neuronale Netz (108) eine definierte Abfolge von Filterschichten (110) umfasst und jede der Filterschichten (110) eine definierte Anzahl trainierbarer Filter (116) einer definierten Filtergröße zum Umwandeln einer Eingabe (112) in eine Ausgabe (114) umfasst, wobei das Testsystem (104) ausgeführt ist, um Testanfragen (122) von einem Testgeneriermodul (118) zu empfangen, basierend auf den Testanfragen (122) mindestens zwei Reihen (128) von Tests (130) durchzuführen und Testergebnisse (136) an ein Testauswertemodul (120) zu senden, wobei für jede Reihe (128) eine andere Architektur (132) des künstlichen neuronalen Netzes (108) verwendet wird, wobei sich die Architekturen (132) unterschiedlicher Reihen (128) zumindest in einer Abfolge der Filtergrößen voneinander unterscheiden, wobei unterschiedliche Einstellungen für mindestens einen weiteren Parameter (134a, 134b, 134c) des künstlichen neuronalen Netzes (108) bestimmt werden, wobei für jeden Test (130) innerhalb einer Reihe (128) eine andere Einstellung verwendet wird, wobei in jedem der Tests (130) Eingaben (112) in das künstliche neuronale Netz (108) eingegeben werden und ein Testergebnis (136) ermittelt wird, das eine Leistungsfähigkeit des Testsystems (104) beim Verarbeiten der Eingaben (112) durch das künstliche neuronale Netz (108) anzeigt.Test system (104) for executing an algorithm based on an artificial neural network (108), the artificial neural network (108) comprising a defined sequence of filter layers (110) and each of the filter layers (110) having a defined number of trainable filters (116) a defined filter size for converting an input (112) into an output (114), wherein the test system (104) is configured to receive test requests (122) from a test generation module (118), to perform at least two series (128) of tests (130) based on the test requests (122), and To send test results (136) to a test evaluation module (120), wherein a different architecture (132) of the artificial neural network (108) is used for each row (128), the architectures (132) of different rows (128) differing from one another at least in a sequence of the filter sizes, different settings for at least one further parameter (134a, 134b, 134c) of the artificial neural network (108) being determined, a different setting being used for each test (130) within a row (128), wherein in each of the tests (130) inputs (112) are entered into the artificial neural network (108) and a test result (136) is determined which indicates a performance of the test system (104) when processing the inputs (112) by the artificial neural network Network (108). Computersystem (100), umfassend: ein Testgenerier- und -auswertesystem (102) nach Anspruch 9; und ein Testsystem (104) nach Anspruch 10.A computer system (100) comprising: a test generation and evaluation system (102) according to Claim 9 ; and a test system (104) according to Claim 10 . Computerprogramm, umfassend Befehle, die bei Ausführung des Computerprogramms durch ein Computersystem (100) nach Anspruch 11 das Computersystem (100) dazu veranlassen, das Verfahren nach einem der Ansprüche 1 bis 8 auszuführen.Computer program, comprising instructions which, when the computer program is executed by a computer system (100) Claim 11 cause the computer system (100) to carry out the method according to one of the Claims 1 until 8th to execute. Computerlesbares Medium, auf dem ein Computerprogramm nach Anspruch 12 gespeichert ist.Computer-readable medium on which a computer program is based Claim 12 is stored.
DE102020206506.3A 2020-05-26 2020-05-26 Method for testing different architectures of an artificial neural network Pending DE102020206506A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020206506.3A DE102020206506A1 (en) 2020-05-26 2020-05-26 Method for testing different architectures of an artificial neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020206506.3A DE102020206506A1 (en) 2020-05-26 2020-05-26 Method for testing different architectures of an artificial neural network

Publications (1)

Publication Number Publication Date
DE102020206506A1 true DE102020206506A1 (en) 2021-12-02

Family

ID=78509008

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020206506.3A Pending DE102020206506A1 (en) 2020-05-26 2020-05-26 Method for testing different architectures of an artificial neural network

Country Status (1)

Country Link
DE (1) DE102020206506A1 (en)

Similar Documents

Publication Publication Date Title
DE19814422A1 (en) Process for obtaining solution to a constraint problem
EP1934895A2 (en) Method for the computer-aided studying of a neural network, and neural network
DE102021209343A1 (en) Method and device for position reconstruction of semiconductor components on a wafer
DE102021201777A1 (en) Behavioral recognition method, behavioral recognition device and computer-readable recording medium
DE102020206059A1 (en) Computer-implemented method and system for training an evaluation algorithm, computer program and electronically readable data carrier
DE102012223587B4 (en) Method for testing an application
DE102012108407A1 (en) A method and apparatus for determining test sets of operating parameter values for an electronic component
DE102020206506A1 (en) Method for testing different architectures of an artificial neural network
DE4121453C2 (en) Approximation inference device
EP3605404B1 (en) Method and device for the training of a machining learning routine for controlling a technical system
DE602004001718T2 (en) Method for real-time correction of non-functioning pixels in digital radiography
DE112018007536T5 (en) Convolutional neural network
DE102017118995B4 (en) Method for producing a component of an internal combustion engine and simulation system for accelerated simulation of the behavior of a component of an internal combustion engine
DE112020002822T5 (en) Hyperparameter optimization method, program test system and computer program
DE102020111584A1 (en) Method for obtaining data using surgical microscopy systems
EP3316216B1 (en) Method for checking an object
EP3748574A1 (en) Adaptive removal of different types of interference from measurement data
DE102019204136A1 (en) Method and device for training and producing an artificial neural network
DE69011917T2 (en) Device for the automatic validity analysis of medical test data.
DE102004002901A1 (en) Fault analysis method for a semiconductor assembly
DE102022131760A1 (en) MODEL GENERATION METHOD, MODEL GENERATION PROGRAM, MODEL GENERATION DEVICE AND DATA PROCESSING DEVICE
DE102023203460B3 (en) Computer-implemented method for operating an imaging device, imaging device, computer program and electronically readable data carrier
DE102021209608A1 (en) Method and device for position reconstruction of semiconductor components on a wafer
DE102021006554A1 (en) Method and device for position reconstruction of semiconductor components on a wafer
DE102021209588A1 (en) Method and device for position reconstruction of semiconductor components on a wafer

Legal Events

Date Code Title Description
R012 Request for examination validly filed