DE102022112218A1 - Vorrichtung und Verfahren zum Bereitstellen von konfigurierbaren Datenverarbeitungspfaden für Daten eines Maschine Learning, ML, sowie zugehöriges computerlesbares Speichermedium - Google Patents

Vorrichtung und Verfahren zum Bereitstellen von konfigurierbaren Datenverarbeitungspfaden für Daten eines Maschine Learning, ML, sowie zugehöriges computerlesbares Speichermedium Download PDF

Info

Publication number
DE102022112218A1
DE102022112218A1 DE102022112218.2A DE102022112218A DE102022112218A1 DE 102022112218 A1 DE102022112218 A1 DE 102022112218A1 DE 102022112218 A DE102022112218 A DE 102022112218A DE 102022112218 A1 DE102022112218 A1 DE 102022112218A1
Authority
DE
Germany
Prior art keywords
data
building block
module
program code
data processing
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
DE102022112218.2A
Other languages
English (en)
Inventor
Johannes Dumler
Andreas Wittman
Norbert Kroth
Manuel Schwonberg
Tillmann Radmer
Kevin Jonczyk
Christian Aust
Ulrich Pech
Dmitry Zarubin
Jan Zawadzki
Daniel Graff
Andrii Iegorov
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.)
Volkswagen AG
Cariad SE
Original Assignee
Volkswagen AG
Cariad SE
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 Volkswagen AG, Cariad SE filed Critical Volkswagen AG
Priority to DE102022112218.2A priority Critical patent/DE102022112218A1/de
Publication of DE102022112218A1 publication Critical patent/DE102022112218A1/de
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/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

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

Abstract

Die Erfindung betrifft eine Vorrichtung mit konfigurierbaren Datenverarbeitungspfaden für Daten eines Maschine Learning, ML, wobei der jeweilige Datenverarbeitungspfad ein Training eines Modells des ML und/oder eine Formatkonvertierung des trainierten Modells und/oder eine Vorverarbeitung von Trainingsdaten des Modells bewirkt, wobei eine Bedienschnittstelle der Vorrichtung dazu eingerichtet ist, jeweiligen Programmcode für Bausteinmodule von einem Nutzer zu empfangen und in jeweils ein Bausteinmodul einzutragen, und den Datenverarbeitungspfad gemäß einer Nutzervorgabe des Nutzers als eine Kette der Bausteinmodule zu bilden und hierbei die Bausteinmodule zu deren Verkettung über ihre Eingangsschnittstellen einerseits und Ausgabeschnittstellen andererseits miteinander zu koppeln,

Description

  • Die Erfindung betrifft eine Vorrichtung und ein Verfahren, mittels welchen Datenverarbeitungspfade konfiguriert werden können, durch welche Daten bei einem Machine Learning (ML - Maschinelles Lernen) gemäß Benutzervorgaben konfiguriert werden. Durch den jeweiligen Datenverarbeitungspfad kann ein Training eines Modells des maschinellen Lernens beziehungsweise eine Formatkonvertierung des trainierten Modells beziehungsweise eine Vorverarbeitung von Trainingsdaten des Modells erfolgen. Die Erfindung betrifft auch einen Datenträger (computerlesbares Speichermedium), um das Verfahren in einer Prozessorschaltung installieren oder implementieren zu können.
  • Die Entwicklung und der Einsatz von ML-Funktionen erfordert eine vollständige Toolchain (Datenverarbeitungspfad) vom Daten-Ingest (Datenvorverarbeitung) bis zum einsatzfähigen Modell, das im Automobilbereich zusätzlich mehrere Normen, Vorschriften und Prozesse erfüllen muss, wofür eine Konvertierung eines fertig trainierten Modell notwendig sein kann. Jede Toolchain muss enthält ihren eigenen Programmcode. Das bedeutet, dass jede Toolchain viele gemeinsame Schritte neu implementiert, was einen hohen Overhead verursacht, weil jede Implementierung auf Fehlerfreiheit überprüft werden muss.
  • Aus der CN 113741912 A ist bekannt, dass ein Modell des maschinellen Lernens (ML-Modell) mittels eines sogenannten SDK (Software Development Kid) erzeugt werden kann. Dieses kann zusätzliche Hilfsfunktionen umfassen, wie beispielsweise das automatische Protokollieren oder Loggen von Vorgängen beim Trainieren und/oder Betreiben eines ML-Modells. Aus der WO 2021/041 921 A1 ist ebenfalls ein SDK bekannt, um künstliche neuronale Netze als ML-Modell zu trainieren.
  • Aus der Druckschrift des Bundesministeriums für Wirtschaft und Energie, „Deutsche Normungsroadmap künstliche Intelligenz“ (DIN e.V. und DKE Deutsche Kommission Elektrotechnik, November 2020) ist der Hinweis bekannt, dass der Vorgang des Trainierens eines Modells des maschinellen Lernens normiert oder standardisiert ablaufen sollte, um das Verhalten eines Modells des maschinellen Lernens reproduzierbar oder nachvollziehbar zu machen.
  • Aus der DE 10 2021 113 105 A1 und US 2007/0094168 A1 sind entsprechende Techniken zum Modifizieren und Trainieren eines neuronalen Netzwerks bekannt.
  • Beim Trainieren von ML-Modellen sowie bei deren Einsatz beispielsweise für die Computer-Vision-Verarbeitung im Kraftfahrzeug und auch beim Vorverarbeiten der Trainingsdaten für das Trainieren sind jeweils aufwendige Abfolgen von Datenverarbeitungsschritten notwendig, die sich zu einem jeweiligen Datenverarbeitungspfad für a) das Vorverarbeiten der Trainingsdaten, b) das Trainieren beziehungsweise c) den Betrieb eines trainierten Modells ergeben. Da ein Modell des Maschinellen Lernens an sich in Bezug auf seine Struktur und Eigenschaften bereits schwierig zu interpretieren ist, kann beim Betrieb solcher Datenverarbeitungspfade hinzu kommen, dass ein Fehler bei dessen Programmierung unbemerkt bleibt, weil eine „korrekte“ Betriebsweise des Modells an sich nicht angegeben werden kann aufgrund von dessen schwer zu analysierenden Eigenschaften. Ob eine Erkennungsleistung aufgrund von unzulänglichem Training oder Fehlern bei der Datenaufbereitung gering ist, kann nur mit einer aufwändigen Analyse erkannt werden. Von daher ist es notwendig, beim Implementieren eines Datenverarbeitungspfads für die Vorverarbeitung, das Training beziehungsweise den Betrieb eines ML-Modells, Fehlerquellen in einem solchen Datenverarbeitungspfad vermeiden zu können.
  • Der Erfindung liegt die objektive technische Aufgabe zugrunde, beim Implementieren oder Konfigurieren eines Datenverarbeitungspfads für die Vorverarbeitung von Trainingsdaten und/oder das Training eines ML-Modells und/oder den Betrieb eines ML-Modells eine Unterstützung für eine fehlerfreie beziehungsweise überprüfbare Implementierung bereitzustellen.
  • Die Aufgabe wird durch die Gegenstände der unabhängigen Patentansprüche gelöst. Vorteilhafte Weiterentwicklungen der Erfindung sind durch die abhängigen Patentansprüche, die folgende Beschreibung sowie die Figuren beschrieben.
  • Durch die Erfindung ist als eine Lösung eine Vorrichtung mit konfigurierbaren Datenverarbeitungspfaden für Daten eines Machine Learning, ML, bereitgestellt. Der jeweilige Datenverarbeitungspfad bewirkt ein Training eines Modells des maschinellen Lernens (beispielsweise eines künstlichen neuronalen Netzwerks) und/oder eine Formatkonvertierung des trainierten Modells (beispielsweise zur Reduktion einer Quantisierung von Parameterwerten von beispielsweise 32 Bit auf 16 Bit) und/oder eine Vorverarbeitung von Trainingsdaten des Modells (beispielsweise zur Filterung und/oder Anpassung eines Datenformats).
  • Gemäß der Erfindung werden durch die Vorrichtung vorgefertigte Bausteinmodule bereitgestellt, die jeweils eine Eingangsschnittstelle zum Empfangen von Eingangsdaten und eine Ausgabeschnittstelle zum Ausgeben von Ausgabedaten aufweisen. Mit anderen Worten kann der Datenverarbeitungspfad mittels einzelner Bausteinmodule zusammengesetzt werden. Die Bausteinmodule stellen dazu Bausteine oder Plug-in-Module dar, die über ihre Eingangsschnittstelle und Ausgabeschnittstelle miteinander gekoppelt oder verbunden werden können. Jedes Bausteinmodul ist dazu eingerichtet, Programmcode eines Verarbeitungsschrittes des Datenverarbeitungspfads zu speichern. Der Datenverarbeitungspfad kann also aus mehreren voneinander verschiedenen oder hintereinander ausgeführten Verarbeitungsschritten zusammengesetzt oder gebildet sein, von denen jeder durch ein Bausteinmodul realisiert oder bereitgestellt oder durchgeführt werden kann. Der Verarbeitungsschritt wandelt dabei die Eingangsdaten des jeweiligen Bausteinmoduls in die Ausgabedaten des Bausteinmoduls um. Ein Bausteinmodul kann also über seine Eingangsschnittstelle Eingangsdaten empfangen, diese mittels des Verarbeitungsschritts, der durch den gespeicherten Programmcode vorgegeben ist, umwandeln und als Ausgabedaten an der Ausgabeschnittstelle ausgeben.
  • Eine Bedienschnittstelle der Vorrichtung, zum Beispiele ein GUI (Graphical User Interface), ist dazu eingerichtet, den jeweiligen Programmcode für die Bausteinmodule von einem Nutzer zu empfangen und in jeweils eines der Bausteinmodule einzutragen oder abzuspeichern. Der Nutzer kann hierzu beispielsweise Dateien mit dem Programmcode übergeben und/oder den Programmcode an einem Programmeditor eingeben. Die Bedienschnittstelle ist des Weiteren dazu eingerichtet, den Datenverarbeitungspfad gemäß einer Nutzervorgabe des Nutzers als eine Kette der Bausteinmodule zu bilden. Der Benutzer kann also beispielsweise mittels einer Computermaus oder mittels einer Konfigurationsdatei vorgeben, wie die programmierten Bausteinmodule verkettet werden sollen. Die Bausteinmodule werden dabei zu deren Verkettung über ihre Eingangsschnittstellen einerseits und Ausgabeschnittstellen andererseits miteinander zu koppeln. Der Nutzer kann also vorgeben, in welcher Reihenfolge oder Kette die Bausteinmodule aneinander zu koppeln oder zu verketten sind.
  • Die Prozessorschaltung der Vorrichtung ist dazu eingerichtet, zum Betreiben des jeweiligen Datenverarbeitungspfads, also zum Verarbeiten der Daten für das Machine Learning, diese Daten dem ersten Bausteinmodul der Kette als Eingangsdaten bereitzustellen und den Programmcode der Bausteinmodule auszuführen. Hierdurch werden die Daten an der Eingangsschnittstelle des ersten Bausteinmoduls entgegengenommen und in der Kette der Bausteinmodule durch die jeweiligen Verarbeitungsschritte verarbeitet.
  • Um hierbei den so entstandenen und betriebenen Datenverarbeitungspfad nachvollziehbar und überprüfbar zu machen, ist zusätzlich vorgesehen, dass jedes Bausteinmodul vorgefertigte Moduldienstfunktionen umfasst oder integriert hat, die für eine Protokollierung und/oder Reproduzierbarkeit und/oder Laufzeitverbesserung und/oder Qualitätssicherung des jeweiligen Verarbeitungsschrittes ausgestaltet sind. Während also der Nutzer pro Bausteinmodul lediglich den Programmcode für einen Verarbeitungsschritt vorgeben muss, stellt jedes Bausteinmodul zusätzlich die vorgefertigten Moduldienstfunktionen bereit. Im Betrieb des Datenverarbeitungspfades wird dann nicht nur der Programmcode der Bausteinmodule ausgeführt, sondern die Prozessorschaltung ist zusätzlich dazu eingerichtet, beim Ausführen des Programmcodes des jeweiligen Bausteinmoduls selbsttätig auch die Moduldienstfunktionen des Bausteinmoduls mit auszuführen. Dies kann zeitlich vor dem Ausführen des Programmcodes und/oder parallel/gleichzeitig dazu und/oder danach erfolgen. Wenn also der Verarbeitungsschritt in dem jeweiligen Bausteinmodul ausgeführt wird, wird dieser Verarbeitungsschritt durch die Moduldienstfunktionen begleitet. Mit anderen Worten wird in jedem Bausteinmodul der Programmcode des Verarbeitungsschrittes eingebettet in die Moduldienstfunktionen, durch welche in der beschriebenen Weise ermöglicht ist, den jeweiligen Verarbeitungsschritt in dem Datenverarbeitungspfad zusätzlich in Bezug auf Protokollierung und/oder Reproduzierbarkeit und/oder Laufzeitverbesserung und/oder Qualitätssicherung zu unterstützen oder zu begleiten. Dies geschieht automatisiert, sodass der Nutzer lediglich den Programmcode des Verarbeitungsschritts selbst bereitstellen muss.
  • Ein Bausteinmodul kann hierbei jeweils realisiert sein, indem es als Programmodul und/oder als elektronische Schaltung (Hardware in the loop) realisiert ist. Beispielsweise kann als Hardware vorgesehen sein, dass ein DSP (Digital Signal Processor) und/oder NPU (Neuronal Processing Unit) als Bestandteil eines Bausteinmoduls bereitgestellt wird, sodass der Verarbeitungsschritt dann auf dieser spezialisierten Hardware durchgeführt oder ausgeführt werden kann. Schnittstellen zum Verketten von Bausteinmodulen sind an sich im Stand der Technik verfügbar.
  • Durch die Erfindung ergibt sich der Vorteil, dass ein Nutzer lediglich den Programmcode des jeweiligen Verarbeitungsschritts angeben muss sowie die Reihenfolge der Verkettung der Bausteinmodule festlegen muss. Eine zusätzliche Prozessierung der Daten in Bezug auf Protokollierung und/oder Reproduzierbarkeit und/oder Laufzeitverbesserung und/oder Qualitätssicherung des jeweiligen Verarbeitungsschrittes erfolgt dann automatisiert durch die Ausgestaltung der Bausteinmodule. Indem die Verarbeitungsschritte auf Bausteinmodule aufgeteilt sind, lassen sich auch mit einmal eingegebenen Programmcode für unterschiedliche Bausteinmodule durch unterschiedliches Verketten derselben zu unterschiedlichen Datenverarbeitungspfaden kombinieren, ohne dass hierzu zusätzlicher Programmcode notwendig wäre, da die Modulbausteine bereits einen Programmcode für einen Verarbeitungsschritt gespeichert halten.
  • Die Erfindung umfasst auch Weiterentwicklungen, durch die sich zusätzliche Vorteile ergeben.
  • In jedem Bausteinmodul kann in der beschriebenen Weise automatisiert eine Moduldienstfunktion ausgeführt werden, wenn das Bausteinmodul aktiv wird oder dessen Programmcode des Verarbeitungsschritts ausgeführt wird. Eine der Moduldienstfunktionen ist gemäß einer Weiterentwicklung dazu eingerichtet, für die besagte Qualitätssicherung an der Eingangsschnittstelle des jeweiligen Bausteinmoduls zu überprüfen, ob ein Datentyp der Ausgabeschnittstelle des in der Kette vorgeschalteten Bausteinmoduls (aus dem also die Eingangsdaten für die Eingangsschnittstelle stammen oder kommen) mit einem geforderten Datentyp der Eingangsschnittstelle übereinstimmt. Es wird also überprüft, ob die übergebenen Eingabedaten (Ausgabedaten der vorgeschalteten Ausgabeschnittstelle) einen korrekten oder geforderten Datentyp aufweisen. Die Moduldienstfunktion ist dazu eingerichtet, bei fehlender Übereinstimmung, also bei falschem Datentyp, ein Fehlersignal zu erzeugen. Durch diesen Qualitätscheck wird sichergestellt, dass die Eingangsdaten den vermuteten oder angenommenen oder benötigten Datentyp auch tatsächlich aufweisen. Werden beispielsweise Bilddaten übergeben, so kann überprüft werden, ob die Farbwerte eines jeden Pixels im Format RGB - Rot, Grün, Blau - definiert sind oder beispielsweise in einem alternativen Format, wie beispielsweise LUV. Die vorgeschaltete Ausgabeschnittstelle kann den Datentyp der von ihr ausgegebenen Ausgabedaten beispielsweise durch entsprechende Datentypdaten signalisieren, die zusammen mit den Ausgabedaten selbst bereitgestellt werden können oder zum Abruf durch die Moduldienstfunktion des nachgeschalteten Bausteinmoduls bereitgehalten sind. Auch für die Eingabeschnittstelle können entsprechende Datentypdaten vorgegeben werden, die der Moduldienstfunktion mitteilen oder signalisieren, welcher Datentyp an der Eingangsschnittstelle für den Verarbeitungsschritts gefordert oder benötigt sind.
  • Die Reproduzierbarkeit eines Verarbeitungsschrittes in einem Bausteinmodul kann dann notwendig sein, wenn beispielsweise bei einem Training ein Modell reproduziert werden soll. Eine Weiterentwicklung berücksichtigt hierbei, dass in zumindest einem der Bausteinmodule ein Zufallszahlengenerator bereitgestellt ist. Dieser kann beispielsweise notwendig sein, um in einem künstlichen neuronalen Netzwerk Gewichte oder Gewichtswerte zu initialisieren, wie sie für eine gewichtete Summe der Aktivierungswerte oder Ausgabewerte von künstlichen Neuronen einer vorgeschalteten Netzwerkschicht in an sich bekannter Weise genutzt werden. Ist ein solcher Zufallszahlengenerator bereitgestellt, so ist eine Moduldienstfunktion dieses Bausteinmoduls dazu eingerichtet, für die Reproduzierbarkeit die von dem Zufallszahlengenerator erzeugte Zufallszahlen abzuspeichern. Somit sind also die in dem Verarbeitungsschritt verwendeten Zufallszahlen bekannt oder in einem Datenspeicher einsehbar.
  • Entsprechend sieht eine Weiterentwicklung vor, dass das Bausteinmodul dazu eingerichtet ist, in einem Reproduktionsmodus anstelle des Zufallszahlengenerators die abgespeicherten „Zufallszahlen“ zu verwenden. Durch Umschalten des Bausteinmoduls in den Reproduktionsmodus wird also anstelle des Zufallszahlengenerators das Ergebnis oder die Ausgabe dieses Zufallszahlengenerators aus einer vorangegangenen Durchführung des Verarbeitungsschrittes dieses Bausteinmoduls verwendet. Es können auch abgespeicherte Zahlen, die unabhängig von dem Zufallszahlengenerator erzeugt wurden, vorgegeben werden, wie sie beispielsweise durch einen Benutzer definiert werden können, um gezielt einen vorbestimmten Zustand in einem künstlichen neuronalen Netzwerk oder allgemein in einem zu trainierenden Modell des Maschinellen Lernens einzustellen.
  • Eine Weiterentwicklung umfasst, dass eine der Moduldienstfunktionen in zumindest einem der Bausteinmodule dazu eingerichtet ist, für die Laufzeitverbesserung eine Parallelisierung vorzunehmen. Der in dem Bausteinmodul gespeicherte Programmcode für den Verarbeitungsschritt bezieht sich in einem solchen Fall insbesondere zumindest abschnittsweise auf eine Verarbeitung lediglich eines Datenelements einer Datenstruktur, die wiederum aus mehreren solchen Datenelemente besteht oder diese umfasst. „Abschnittsweise“ bedeutet hier, dass zumindest ein Codeabschnitt des Programmcodes dieses Bausteinmoduls die Verarbeitung eines einzelnen Datenelements betrifft. Der Nutzer muss also mit seinem Programmcode nur die Verarbeitung eines einzelnen Datenelements dieser Datenstruktur angeben oder definieren. Die Moduldienstfunktion umfasst dann, dass parallel auf den übrigen Datenelementen dieser Programmcode ebenfalls ausgeführt wird und hierzu der betreffende Codeabschnitt des Programmcodes auf mehreren Rechenkernen der Prozessorschaltung parallelisiert wird und die Verarbeitung der übrigen Datenelemente mittels dieser Rechenkerne durchgeführt wird. Das „Parallelisieren“ eines Codeabschnitts kann erfolgen, indem der Codeabschnitt, beispielsweise Binärcode, für eine Ausführung durch den jeweiligen Rechenkern verfügbar gemacht wird. Bei dem jeweiligen Rechenkern kann es sich jeweils um einen Rechenkern einer CPU (central processing unit) oder einer GPU (graphical processing unit) oder einer NPU (neural processing unit) handeln. Wie ein einzelner Rechenkern mit einem Codeabschnitt programmiert oder betrieben werden kann, ist an sich aus dem Stand der Technik bekannt. Durch das Parallelisieren werden alle Datenelemente der Datenstruktur oder entsprechend viele Datenelemente, wie Rechenkerne zur Verfügung stehen, gleichzeitig oder parallel gemäß dem Codeabschnitt verarbeitet.
  • In Bezug auf die Protokollierung ist gemäß einer Weiterentwicklung vorgesehen, dass eine Moduldienstfunktion für die Protokollierung Zwischenergebnisse des Verarbeitungsschrittes selbst und/oder Zustandsdaten, die einen während der Durchführung des Verarbeitungsschrittes eingenommenen Betriebszustand des Bausteinmoduls beschreiben, auf einem Datenspeicher abspeichert. Dies ergibt eine Nachvollziehbarkeit (Traceability) und/oder eine Protokollierung (Logging) des Verarbeitungsschrittes. Somit kann beispielsweise überprüft werden, ob während des Verarbeitungsschrittes ein Zahlenwert einen sogenannten Overflow oder Underflow aufwies (nicht mehr durch den Datentyp des Zahlenwerts beschreibbarer Datenwert beispielsweise bei einem Rechenergebnisses) und/oder ob ein Fehlerzustand in dem Bausteinmodul entstanden ist (z.B. Division durch Null oder Void Pointer).
  • Gemäß einer Weiterentwicklung werden die Bausteinmodule nicht in einer einfachen Kette hintereinandergeschaltet, sondern ein bestimmter Bausteinmodul kann dazu genutzt werden, die Verarbeitung wahlweise auf eines von mehreren Bausteinmodulen zu verzweigen. Eines der Bausteinmodule ist hierzu gemäß der Weiterentwicklung dazu ausgestaltet, zumindest eine weitere Ausgabeschnittstelle zum Koppeln mit einer jeweiligen Eingangsschnittstelle eines Bausteinmoduls bereitzustellen. Mit anderen Worten weist das Bausteinmodul zumindest zwei Ausgabeschnittstellen auf. Das Bausteinmodul ist dazu eingerichtet, die Ausgabedaten in Abhängigkeit von den Eingabedaten an jeweils nur eine der Ausgabeschnittstellen weiterzuleiten. Mit anderen Worten wird je nach Eingabedaten in dem Bausteinmodul entschieden, an welches nachgeschaltete Bausteinmodul, das heißt an welche Ausgabeschnittstelle, die aus diesen Eingabedaten erzeugten Ausgabedaten weitergeleitet werden. Hierdurch kann eine alternative Verarbeitung in den jeweils nachgeschalteten Bausteinmodulen ausgewählt werden. Dies kann beispielsweise notwendig sein, wenn es sich bei den Eingangsdaten um Daten aus unterschiedlichen Sensoren und/oder für unterschiedliche Betriebsszenarien oder Anwendungsszenarien handelt. So kann beispielsweise der Datenverarbeitungspfad unterscheiden, ob es sich um Eingangsdaten während einer Vorwärtsfahrt oder einer Rückwärtsfahrt eines Kraftfahrzeugs handelt, in welchen das zu trainierende Modell des maschinellen Lernens betrieben werden soll.
  • Gemäß mehreren unterschiedlichen Weiterbildungen ergeben sich zusätzlich folgende Moduldienstfunktionen. Es kann ein automatisierter Test mit den Eingangsdaten und/oder Ausgabedaten durch eine Moduldienstfunktion erfolgen, um hierdurch Eigenschaften und/oder ein Verarbeitungsergebnis zu verifizieren. Es kann eine Simulation eines vorbestimmten Vorgangs durch eine Moduldienstfunktion automatisiert durchgeführt werden, wobei der Vorgang mit den Ausgabedaten geprüft wird, die für diesen Vorgang vorgesehen sind. So kann beispielsweise mittels der Ausgabedaten eine Simulation einer Ansteuerung eines Steuergeräts erfolgen, um zu überprüfen, ob die Ausgabedaten für diese Ansteuerung geeignet sind. Gemäß einer Weiterentwicklung kann eine Verifikation der Ausgabedaten des Verarbeitungsschritts erfolgen, um beispielsweise zu überprüfen, ob die Ausgabedaten in einem vorbestimmten Wertebereich liegen, der für die Nutzung der Ausgabedaten von einem Fachmann festgelegt werden kann.
  • Wie bereits ausgeführt, können Bausteinmodule auch wiederverwendet werden oder mehrfach verwendet werden. Eine Weiterentwicklung sieht hierzu vor, dass die Prozessorschaltung dazu eingerichtet ist, Bausteinmodule mit derselben Kopie eines Programmcodes innerhalb des Datenverarbeitungspfads an mehreren unterschiedlichen Positionen der Kette zu betreiben. Ist also einmal ein Bausteinmodul programmiert, also mit Programmcode für den Verarbeitungsschritt versehen, so kann dieses Bausteinmodul kopiert werden oder (im Falle eines schaltungstechnischen Bausteinmoduls) ein weiteres Bausteinmodul mit demselben Programmcode versehen oder konfiguriert werden. Dann lässt sich derselbe Verarbeitungsschritt an unterschiedlichen Stellen innerhalb der Kette eines Datenverarbeitungspfads anwenden. Zusätzlich oder alternativ dazu kann ein Bausteinmodul natürlich auch für mehrere unterschiedliche Datenverarbeitungspfade betrieben werden. Die Bausteinmodule sind dabei unabhängig voneinander, da jedes Bausteinmodul seine eigene Kopie des Programmcodes gespeichert hält. Allgemein ist vorgesehen, dass in der Vorrichtung bevorzugt mehrere Datenverarbeitungspfade vorgesehen sind, beispielsweise einer für die Vorverarbeitung von Daten, einer für eine Formatkonvertierung eines trainierten Modells und einer für das Training eines Modells des maschinellen Lernens.
  • Durch den Betrieb der Vorrichtung ergibt sich jeweils ein Verfahren, das ebenfalls Bestandteil der Erfindung ist und das die beschriebenen Schritte umfasst, wie sie im Zusammenhang mit der erfindungsgemäßen Vorrichtung beziehungsweise deren Weiterentwicklungen beschrieben worden sind. Aus diesem Grund sind die Verfahrensschritte des Verfahrens hier nicht noch einmal beschrieben.
  • Zu der Erfindung gehören auch Weiterbildungen des erfindungsgemäßen Verfahrens, die Merkmale aufweisen, wie sie bereits im Zusammenhang mit den Weiterbildungen der erfindungsgemäßen Vorrichtung beschrieben worden sind. Aus diesem Grund sind die entsprechenden Weiterbildungen des erfindungsgemäßen Verfahrens hier nicht noch einmal beschrieben.
  • Für Anwendungsfälle oder Anwendungssituationen, die sich bei dem Verfahren ergeben können und die hier nicht explizit beschrieben sind, kann vorgesehen sein, dass gemäß dem Verfahren eine Fehlermeldung und/oder eine Aufforderung zur Eingabe einer Nutzerrückmeldung ausgegeben und/oder eine Standardeinstellung und/oder ein vorbestimmter Initialzustand eingestellt wird.
  • Um eine Prozessorschaltung dahingehend zu ertüchtigen, dass sie eine Ausführungsform des erfindungsgemäßen Verfahrens durchführt, umfasst die Erfindung auch ein computerlesbares Speichermedium mit Programminstruktionen, die bei Ausführen durch die Prozessorschaltung diese veranlassen, eine Ausführungsform des Verfahrens durchzuführen. Die Prozessorschaltung kann hierbei auf zumindest einem Mikroprozessor und/oder zumindest einem Signalprozessor beruhen. Die Prozessorschaltung kann auch Anschlüsse und/oder Steckplätze enthalten, um Hardware-basierte Varianten von Bausteinmodulen aufzunehmen oder anschließen zu können. Das Speichermedium kann beispielsweise ein Flashspeicher oder eine Festplatte sein. Das Speichermedium kann in einem Computer bereitgestellt sein, der auch die Prozessorschaltung enthält. Das Speichermedium kann aber auch zum Transport der Programminstruktionen mobil ausgestaltet sein, beispielsweise als DVD (Digital Versatile Disc) oder als USB-Stick. Das Speichermedium kann auch in einem sogenannten Applikations-Store (Appstore) bereitgestellt sein, von wo aus eine Prozessorschaltung die Programminstruktionen herunterladen (downloaden) kann. Die Programminstruktionen können als Binärcode oder Assembler und/oder als Quellcode einer Programmiersprache (z.B. C) oder Scriptsprache (z.B. Python) bereitgestellt sein.
  • Die Prozessorschaltung kann eine Datenverarbeitungsvorrichtung oder eine Prozessoreinrichtung darstellen, die dazu eingerichtet ist, eine Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Die Prozessorschaltung kann hierzu zumindest einen Mikroprozessor und/oder zumindest einen Mikrocontroller und/oder zumindest einen FPGA (Field Programmable Gate Array) und/oder zumindest einen DSP (Digital Signal Processor) aufweisen. Des Weiteren kann die Prozessorschaltung Programmcode aufweisen, der dazu eingerichtet ist, bei Ausführen durch die Prozessorschaltung die Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Der Programmcode kann in einem Datenspeicher der Prozessorschaltung gespeichert sein.
  • Das beschriebene Kraftfahrzeug ist bevorzugt als Kraftwagen, insbesondere als Personenkraftwagen oder Lastkraftwagen, oder als Personenbus oder Motorrad ausgestaltet.
  • Die Erfindung umfasst auch die Kombinationen der Merkmale der beschriebenen Ausführungsformen. Die Erfindung umfasst also auch Realisierungen, die jeweils eine Kombination der Merkmale mehrerer der beschriebenen Ausführungsformen aufweisen, sofern die Ausführungsformen nicht als sich gegenseitig ausschließend beschrieben wurden.
  • Im Folgenden sind Ausführungsbeispiele der Erfindung beschrieben. Hierzu zeigt:
    • 1 eine schematische Darstellung eines Systems mit Fahrzeugen und einer Ausführungsform der erfindungsgemäßen Vorrichtung;
    • 2 eine schematische Darstellung einer Ausführungsform der erfindungsgemäßen Vorrichtung, wie sie in dem System von 1 vorgesehen sein kann; und
    • 3 eine schematische Darstellung einer Ausführungsform eines Bausteinmoduls, wie es in der Vorrichtung von 2 bereitgestellt sein kann.
  • Bei den im Folgenden erläuterten Ausführungsbeispielen handelt es sich um bevorzugte Ausführungsformen der Erfindung. Bei den Ausführungsbeispielen stellen die beschriebenen Komponenten der Ausführungsformen jeweils einzelne, unabhängig voneinander zu betrachtende Merkmale der Erfindung dar, welche die Erfindung jeweils auch unabhängig voneinander weiterbilden. Daher soll die Offenbarung auch andere als die dargestellten Kombinationen der Merkmale der Ausführungsformen umfassen. Des Weiteren sind die beschriebenen Ausführungsformen auch durch weitere der bereits beschriebenen Merkmale der Erfindung ergänzbar.
  • In den Figuren bezeichnen gleiche Bezugszeichen jeweils funktionsgleiche Elemente.
  • 1 beschreibt ein System 10 mit einer Prozessorschaltung 11 und zumindest einem Fahrzeug 12. 1 zeigt zwei Fahrzeuge 12 und symbolisiert durch Auslassungspunkte 13, dass die Anzahl der Fahrzeuge 12 auch mehr als zwei sein kann. Die Prozessorschaltung 11 kann im Internet I als Backend für die Fahrzeuge 12 betrieben werden. Das jeweilige Fahrzeug 12 kann dabei ein Kraftwagen, insbesondere ein Personenkraftwagen oder Lastkraftwagen, oder ein Roboter, beispielsweise ein Fertigungsroboter, sein. Das System umfasst bevorzugt mehrere Fahrzeuge 12, von denen jedes in der im Folgenden beschriebenen Weise ausgestaltet sein kann.
  • In dem jeweiligen Fahrzeug 12 kann für eine automatisierte Fahrfunktion 14 vorgesehen sein, die Steuerdaten 15 für eine Aktuatorik 16 zum Führen des Fahrzeugs 12 erzeugen kann. Die Aktuatorik 16 kann in bekannter Weise in Abhängigkeit von den Steuerdaten 15 eine Längsführung (Beschleunigen und/oder Bremsen) und/oder eine Querführung (Lenken) des Fahrzeugs 12 bewirken oder ausführen. Die Steuerdaten 15 können durch die automatisierte Fahrfunktion 14 automatisiert erzeugt werden, d.h. ohne eine Zutun eines Fahrers, wodurch das Fahrzeug 12 selbsttätig oder automatisiert das Fahrzeug 12 führen kann. Die automatisierte Fahrfunktion 14 kann eine Fahrerassistenzfunktion sein (z.B. eine Einparkhilfe und/oder eine Spurhalteassistenz) und/oder eine autonome Fahrfunktion (Autopilot).
  • Zum Erzeugen der Steuerdaten 15 kann vorgesehen sein, dass von dem Fahrzeug 12 aus dessen Umgebung 17 überwacht wird, um darin vorhandene Objekte 18, beispielsweise andere Verkehrsteilnehmer und/oder Hindernisse, und zusätzlich oder alternativ dazu einen Fahrweg 19 und/oder Fahrwegsmarkierungen zu erkennen und daraufhin die Steuerdaten 15 für eine kollisionsfreie Fahrt zu planen und zu erzeugen. Die Steuerdaten 15 können eine entsprechende Fahrtrajektorie umsetzen.
  • Die Umgebung 17 kann mittels zumindest eines Umgebungssensors 20 des Fahrzeugs 12 erfasst werden, der beispielsweise zumindest eine Kamera umfassen kann und dessen Erfassungsbereich 21 in die Umgebung 17 ausgerichtet sein kann. Durch den jeweiligen Umgebungssensor 20 kann die Umgebung 17 jeweils zyklisch oder wiederholt erfasst werden und die Umgebung 17 dabei jeweils durch einen Sensordatensatz 22 abgebildet oder beschrieben sein, z.B. durch ein jeweiliges Kamerabild.
  • Auf Grundlage des jeweiligen Sensordatensatzes 22 kann durch eine Steuerschaltung 23 des Fahrzeugs 12 mittels eines Modells M des maschinellen Lernens eine Computer-Vision-Verarbeitung 24 des Sensordatensatzes 22 erfolgen, um mittels einer Objekterkennung und/oder semantischen Segmentierung aus dem jeweiligen Sensordatensatz 22 Erkennungsdaten 25 mit einem Erkennungsergebnis zu erzeugen, welches das zumindest eine Objekt 18 und/oder den Fahrweg 19 beschreibt. Dies ist an sich aus dem Stand der Technik bekannt. Die Steuerschaltung 23 kann durch ein Steuergerät (ECU - electronic control unit) oder einen Verbund mehrere Steuergeräte des Fahrzeugs 12 realisiert sein. Die Steuerschaltung stellt eine Inferenzplattform P dar, die das Modell M des Maschinellen Lernens betreibt, um die Computer-Vision-Verarbeitung durchzuführen (Englisch: inference).
  • Mittels der Erkennungsdaten 25 des Erkennungsergebnisses kann die automatisierte Fahrfunktion 14 in an sich bekannter Weise beispielsweise die besagte Fahrtrajektorie berechnen, aus welcher oder auf deren Grundlage die Steuerdaten 15 für die Aktuatorik 16 erzeugt werden können.
  • Vor dem Betrieb des Modells M im Fahrzeug 12 kann das Modell M durch die Prozessorschaltung 11 mittels eines an sich bekannten Trainingsalgorithmus einer Trainingsplattform 30 trainiert oder erzeugt worden sein. Dies kann in an sich bekannter Weise auf der Grundlage von Trainingsdatensätzen 31 erfolgt sein, zu denen zusätzlich in an sich bekannter Weise Labeldaten 32 bereitgestellt worden sein können, die Soll-Ergebnisdaten 25' darstellen, um den Trainingsalgorithmus betreiben zu können. Auf Grundlage der Trainingsdatensätze 31 und der Labeldaten 32 kann mittels des Algorithmus der Trainingsplattform 30 das Modell M beispielsweise mittels Back-Propagation trainiert oder erzeugt worden sein. 1 veranschaulicht, wie das Modell M als künstliches neuronales Netzwerk ANN (artificial neural network) mit einem Autoencoder 33 und einem Decoder 34 (FCN - fully connnected network) in an sich bekannter Weise ausgestaltet worden sein kann. Das fertig trainierte Modell M kann über eine Kommunikationsverbindung C zu dem jeweiligen Fahrzeug 12 übertragen werden. Hierzu kann in dem Fahrzeug 12 jeweils eine Kommunikationsschaltung W vorgesehen sein, die beispielsweise ein Mobilfunkmodul und/oder ein WLAN-Funkmodul (WLAN - Wireless local network) umfassen kann. Die Kommunikationsverbindung C kann eine Internetverbindung umfassen.
  • Durch die Trainingsplattform kann das Modell M in einem ersten Format erzeugt oder bereitgestellt worden sein, das hier als Eingabeformat E bezeichnet ist. Dagegen kann bei der Inferenzplattform P der Steuerschaltung 23 des Fahrzeugs 12 notwendig sein, dass das Modell M in einem zweiten Format vorliegen muss, das hier als Ausgabeformat A bezeichnet ist. Die Trainingsplattform 30 und die Inferenzplattform P können daher über eine Konvertierungsvorrichtung 50 miteinander gekoppelt sein, welche das Modell M im Eingabeformat E empfängt und dieses in das Ausgabeformat A umwandelt oder konvertiert. Hierzu kann die Konvertierungsvorrichtung 50 eine Konvertierungsfunktion 51 aufweisen, die beispielsweise als eine Software oder Computerprogrammmodul ausgestaltet und durch die Prozessorschaltung 11 ausgeführt sein kann. Die Konvertierungsfunktion 51 kann vorsehen, dass in dem Modell M Modellparameter beispielsweise in der Anzahl an Bits reduziert oder verändert werden (beispielsweise Konvertierung 32 Bit auf 16 Bit) und/oder wobei die Interpretation von Bytefolgen anders erfolgt (beispielsweise von RGB - Rot, Grün, Blau - Umwandlung in BGR - Blau, Grün, Rot) und/oder Parameter andere Bezeichnungen aufweisen. Trotz einer Konvertierung in der Konvertierungsvorrichtung 50 mittels der Konvertierungsfunktion 51 kann bei dem System 10 sichergestellt werden, dass die Computer-Vision-Verarbeitung 24 in der Inferenzplattform P zu einem vorgegebenen Unterschiedsmaß oder Unterschied sich im Vergleich zu dem Ergebnis des Trainingsalgorithmus der Trainingsplattform 30 um nicht mehr als ein vorgegebener Schwellenwert verändert oder abweicht.
  • Um die Trainingsdatensätze 31 für die Trainingsplattform 30 zu verwenden, kann vorgesehen sein, mittels einer Vorverarbeitung 52 die Trainingsdatensätze 31 zu verändern oder vorzubereiten. Beispielsweise kann eine Filterung vorgesehen sein, um beispielsweise einen Detailgrad zu verringern und/oder um Kanten zu markieren und/oder eine Bildauflösung (Breite in Pixeln und/oder Höhe in Pixeln) zu verändern, insbesondere zu verringern.
  • Der Trainingsplattform 30, die Konvertierungsvorrichtung 50 und/oder die Vorverarbeitung 52 können durch die Prozessorschaltung 11 jeweils als ein Datenverarbeitungspfad ausgestaltet sein, entlang welchem Verarbeitungsschritte aufgereiht oder angeordnet sind, welche von den jeweiligen zu verarbeitenden Daten durchlaufen werden.
  • 2 zeigt eine Vorrichtung 70, die durch die Prozessorschaltung 11 bereitgestellt sein kann oder diese umfassen kann. Durch die Prozessorschaltung 11 kann eine Bedienschnittstelle 71 bereitgestellt oder betrieben werden, die beispielsweise eine GUI (Graphical User Interface), also eine grafische Benutzerschnittstelle, umfassen oder betreiben kann, um von einem Benutzer (nicht dargestellt) Nutzereingaben oder Nutzervorgaben 72 zu empfangen. Dargestellt ist, wie ein Nutzer mittels der Bedienschnittstelle einen jeweiligen Datenverarbeitungspfad 73 festlegen kann, um beispielsweise die Vorverarbeitung 52, die Trainingsplattform 30 und/oder die Konvertierungsvorrichtung 50 zu konfigurieren oder festzulegen. Jeder Datenverarbeitungspfad 73 kann hierbei mittels der Bedienschnittstelle durch den Benutzer als eine jeweilige Kette 74 von Bausteinmodulen 75 ausgestaltet sein. Ein Bausteinmodul kann auch eine Verzweigung 76 und entsprechend eine Zusammenführung 77 in dem Datenverarbeitungspfad 73 verwirklichen.
  • Durch das jeweilige Bausteinmodul 75 kann jeweils ein Verarbeitungsschritt 78 festgelegt werden, wie für einige Bausteinmodule 75 dargestellt ist. Einem Datenverarbeitungspfad 73 können jeweils Daten 79 übergeben werden, die dann gemäß der Anordnung in der Kette 74 in den Datenverarbeitungspfad 73 nacheinander durch die Verarbeitungsschritte 78 der Bausteinmodule 75 verarbeitet oder verändert werden. Hieraus ergeben sich dann jeweilige verarbeitete Daten 80. Im Falle der Vorverarbeitung 52 können die Daten 79 für den Datenverarbeitungspfad 73 die Trainingsdatensätze 31 sein. Die verarbeiteten Daten 80 können dann verarbeitete Trainingsdatensätze 31' sein. Im Fall der Trainingsplattform 30 können die Daten 79 die verarbeiteten Trainingsdatensätze 31' sein und die verarbeiteten Daten 80 können das Modell M des maschinellen Lernens im Eingabeformat E sein. Im Falle der Konvertierungsvorrichtung 50 können die Daten 79 das Modell M im Eingabeformat E sein. Die verarbeiteten Daten 80 können das Modell M im Ausgabeformat A sein.
  • Damit ein Nutzer mittels der Bedienschnittstelle 71 durch Nutzervorgaben 72 Bausteinmodule 75 konfigurieren oder programmieren kann und dann die Bausteinmodule 75 zu den Ketten 74 verbinden oder verketten kann, kann jedes der Bausteinmodule in der in 3 veranschaulichten Weise ausgestaltet sein.
  • 3 veranschaulicht von einem Datenverarbeitungspfad 73 eine Kette 74 aus Bausteinmodulen 75. Zur Verkettung der Bausteinmodule 75 kann jedes Bausteinmodul eine Eingangsschnittstelle 81 und eine Ausgabeschnittstelle 82 aufweisen. In dem Bausteinmodul 75 kann ein Speicher 83 bereitgestellt sein, in welchem ein Programmcode 84 gespeichert werden kann, durch welchen der jeweilige Verarbeitungsschritt 78 des Bausteinmoduls 75 realisiert oder umgesetzt sein kann.
  • Ein Bausteinmodul 75 kann beispielsweise als eine Programmstruktur oder Datenstruktur realisiert sein. Beispielsweise kann eine sogenannte Klasse einer objektorientierten Programmierung als Bausteinmodulvorlage definiert sein und ein jeweiliges Bausteinmodul 75 kann eine sogenannten Instanziierung oder Instanz der Klasse der Bausteinvorlage 75' sein. Ein Bausteinmodul 75 kann zusätzlich oder alternativ dazu eine Hardwareschaltung umfassen, beispielsweise eine Einsteckkarte oder ein Blade oder eine Schaltungsplatine. Der Speicher 83 für den Programmcode 84 kann beispielsweise für einen DSP und/oder Mikrocontroller und/oder eine NPU oder eine GPU vorgesehen sein, die durch das Bausteinmodul 75 bereitgestellt sein kann. Die Eingangsschnittstelle 81 und die Ausgabeschnittstelle 82 können softwaretechnisch beispielsweise als sogenannte API (Application Programm Interface) und/oder Funktionskopf (Function Headup) oder als TCP/IP-Sockel in der Ausgestaltung als Netzwerkdienst realisiert sein. Als Hardware kann die jeweilige Schnittstelle 81, 82 beispielsweise durch Steckkontakte und/oder Funk Transceiver realisiert sein.
  • Über die Schnittstellen 81, 82 können die Bausteinmodule verschaltet oder verkettet sein, indem jeweils eine Ausgabeschnittstelle 82 eines vorgeschalteten Bausteinmoduls 75 mit der Eingangsschnittstelle 81 eines nachgeschalteten Bausteinmoduls 75 verschaltet oder gekoppelt ist. Im Falle der Verzweigung 76 können mehrere Ausgabeschnittstellen 82, im Falle der Zusammenführung 77 können mehrere Eingangsschnittstellen 81 in einem Bausteinmodul 75 realisiert und implementiert sein.
  • Im Falle einer Hardwarerealisierung eines Bausteinmoduls 75 kann dies dann als Bestandteil der Prozessorschaltung 11 und/oder als FPGA (Field Programmable Gate Array) und/oder ASIC (Application Specific Integrated Circuit) betrieben werden.
  • Für das Ausführen des jeweiligen Programmcodes 84 zum Realisieren des Verarbeitungsschrittes 78 kann zusätzlich vorgesehen sein, dass in dem jeweiligen Bausteinmodul 75 Moduldienstfunktionen 85 implementiert oder bereitgestellt sind. Diese können auf Basis von Software und/oder Hardware realisiert sein.
  • Die Moduldienstfunktionen 85 können jeweils als Programmmodul oder Programminstruktionen realisiert sein. Im Falle einer Klasse einer Bausteinvorlage 75' kann es sich um sogenannte Methoden der Klasse handeln. Im Falle einer Hardwarerealisierung kann es sich um zusätzliche Software handeln, die durch die Hardware ausgeführt wird.
  • Eine Moduldienstfunktion 85 kann für eine Qualitätssicherung 86 vorgesehen sein. Die Qualitätssicherung 86 kann vorsehen, dass Ausgabedaten 87 eines vorgeschalteten Bausteinmoduls 75 über die Schnittstellen 81, 82 als Eingangsdaten 88 in ein Bausteinmodul 75 übergeben werden und hierbei durch die Qualitätssicherung 86 ein Datentyp 89 der übergebenen Daten mit einem Soll-Datentyp 90 verglichen wird. Die Datentypen 89 und der Soll-Datentyp 90 können jeweils beispielsweise durch Typdaten realisiert oder signalisiert werden. Ergibt sich eine Übereinstimmung der Datentypen, so kann die Qualitätssicherung 86 den Betrieb oder das Durchführen des Verarbeitungsschrittes 78 freischalten. Ist dagegen ein Unterschied in den Datentypen vorhanden, so kann der Verarbeitungsschritt 78 blockiert werden und/oder ein Fehlersignal 91 erzeugt werden.
  • Eine weitere Moduldienstfunktion 85 kann eine Protokollierung 92 umfassen, durch welche Zustandsdaten 93 und/oder Zwischenergebnisse 94 in einen Datenspeicher 95 abgespeichert oder zwischengespeichert werden, während und/oder nachdem der Verarbeitungsschritt 78 durchgeführt wird.
  • Eine Moduldienstfunktion 85 kann eine Reproduzierbarkeit 96 vorsehen, durch welche Zufallszahlen 97 eines Zufallszahlengenerators RND in einen Datenspeicher, beispielsweise den Datenspeicher 95, abgespeichert werden können. Somit kann in einem Reproduktionsmodus 98 anstelle des Zufallszahlengenerators RND auf abgespeicherte Zufallsdaten 97 zurückgegriffen werden und dann das zuvor zufällige Verhalten durch den Zufallszahlengenerator RND reproduziert werden.
  • Eine Moduldienstfunktion kann eine Laufzeitverbesserung 100 vorsehen, durch welche der Programmcode oder ein Programmcodeabschnitt des Programmcodes 84 ohne einen zusätzlichen Programmieraufwand durch den Nutzer auf mehrere Rechenkerne 101 aufgeteilt werden kann, um durch jeden Rechenkern 101 parallel ein jeweiliges Datenelement 102 in einer gleichartigen Weise gemäß dem Programmcodeabschnitt für den Rechenkern 101 (CPU kernel) zu verarbeiten.
  • Insgesamt zeigen die Beispiele, wie ein Framework (Rahmenwerk) für die überwachte Durchführung eines Trainings eines ML-Modells bereitgestellt werden kann.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • CN 113741912 A [0003]
    • WO 2021041921 A1 [0003]
    • DE 102021113105 A1 [0005]
    • US 20070094168 A1 [0005]

Claims (11)

  1. Vorrichtung mit konfigurierbaren Datenverarbeitungspfaden für Daten eines Maschine Learning, ML, wobei der jeweilige Datenverarbeitungspfad ein Training eines Modells des ML und/oder eine Formatkonvertierung des trainierten Modells und/oder eine Vorverarbeitung von Trainingsdaten des Modells bewirkt und wobei durch eine Prozessorschaltung der Vorrichtung • vorgefertigte Bausteinmodule bereitgestellt werden, die jeweils eine Eingangsschnittstelle zum Empfangen von Eingangsdaten und eine Ausgabeschnittstelle zum Ausgeben von Ausgabedaten aufweisen und die dazu eingerichtet sind, Programmcode eines Verarbeitungsschrittes des Datenverarbeitungspfads zu speichern, wobei der Verarbeitungsschritt die Eingangsdaten in die Ausgabedaten umwandelt, wobei • jedes Bausteinmodul vorgefertigte Moduldienstfunktionen umfasst, die für eine Protokollierung und/oder Reproduzierbarkeit und/oder Laufzeitverbesserung und/oder Qualitätssicherung des Verarbeitungsschrittes ausgestaltet sind, wobei • eine Bedienschnittstelle der Vorrichtung dazu eingerichtet ist, o den jeweiligen Programmcode für die Bausteinmodule von einem Nutzer zu empfangen und in jeweils eines der Bausteinmodule einzutragen, und o den Datenverarbeitungspfad gemäß einer Nutzervorgabe des Nutzers als eine Kette der Bausteinmodule zu bilden und hierbei die Bausteinmodule zu deren Verkettung über ihre Eingangsschnittstellen einerseits und Ausgabeschnittstellen andererseits miteinander zu koppeln, • wobei die Prozessorschaltung dazu eingerichtet ist, zum Betreiben des Datenverarbeitungspfads die Daten dem ersten Bausteinmodul der Kette als Eingangsdaten bereitzustellen und den Programmcode der Bausteinmodule auszuführen und • beim Ausführen des Programmcodes des jeweiligen Bausteinmoduls selbsttätig auch die Moduldienstfunktionen des Bausteinmoduls mit auszuführen.
  2. Vorrichtung nach Anspruch 1, wobei eine der Moduldienstfunktionen dazu eingerichtet ist, für die Qualitätssicherung an der Eingangsschnittstelle des jeweiligen Bausteinmoduls zu überprüfen, ob ein Datentyp der Ausgabeschnittstelle des in der Kette vorgeschalteten Bausteinmoduls mit einem geforderten Datentyp der Eingangsschnittstelle übereinstimmt, und bei fehlender Übereinstimmung ein Fehlersignal zu erzeugen.
  3. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei in zumindest einem der Bausteinmodule ein Zufallszahlengenerator bereitgestellt ist und wobei eine der Moduldienstfunktionen dazu eingerichtet ist, für die Reproduzierbarkeit von dem Zufallszahlengenerator erzeugte Zufallszahlen abzuspeichern.
  4. Vorrichtung nach Anspruch 3, wobei das Bausteinmodul dazu eingerichtet ist, in einem Reproduktionsmodus anstelle des Zufallszahlengenerators abgespeicherte Zufallszahlen zu verwenden.
  5. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei eine der Moduldienstfunktionen dazu eingerichtet ist, für die Laufzeitverbesserung eine durch einen Codeabschnitt des Programmcodes des Bausteinmoduls vorgegebene Verarbeitung eines Datenelements einer Datenstruktur, die mehrere Datenelemente umfasst, parallel auf den übrigen Datenelementen auszuführen und hierzu der Codeabschnitt auf mehrere Rechenkerne der Prozessorschaltung zu parallelisieren und die Verarbeitung der übrigen Datenelemente mittels der Rechenkerne durchzuführen.
  6. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei eine der Moduldienstfunktionen dazu eingerichtet ist, für die Protokollierung Zwischenergebnisse des Verarbeitungsschrittes und/oder Zustandsdaten, die einen während des Verarbeitungsschrittes eingenommenen Betriebszustand des Bausteinmoduls beschreiben, auf einem Datenspeicher abzuspeichern.
  7. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei eines der Bausteinmodule zumindest eine weitere Ausgabeschnittstelle zum Koppeln mit einer Eingangsschnittstelle eines Bausteinmoduls aufweist und das Bausteinmodul dazu eingerichtet ist, die Ausgabedaten in Abhängigkeit von den Eingangsdaten an jeweils nur eine der Ausgabeschnittstellen weiterzuleiten.
  8. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei als Moduldienstfunktionen • ein automatisierter Test mit den Eingangsdaten und/oder den Ausgabedaten, • eine Simulation eines vorbestimmten Vorgangs, für den die Ausgabedaten vorgesehen sind, • eine Verifikation der Ausgabedaten des Verarbeitungsschritts.
  9. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Prozessorschaltung dazu eingerichtet ist, Bausteinmodule mit derselben Kopie eines Programmcodes innerhalb des Datenverarbeitungspfads an mehreren unterschiedlichen Positionen der Kette und/oder für mehrere unterschiedliche Datenverarbeitungspfade zu betreiben.
  10. Verfahren zum Konfigurieren von Datenverarbeitungspfaden für Daten eines Maschine Learning, ML, wobei durch eine Prozessorschaltung einer Vorrichtung • vorgefertigte Bausteinmodule bereitgestellt werden, die jeweils eine Eingangsschnittstelle zum Empfangen von Eingangsdaten und eine Ausgabeschnittstelle zum Ausgeben von Ausgabedaten aufweisen und die dazu eingerichtet sind, Programmcode eines Verarbeitungsschrittes des Datenverarbeitungspfads zu speichern, wobei der Verarbeitungsschritt die Eingangsdaten in die Ausgabedate umwandelt, wobei • jedes Bausteinmodul vorgefertigte Moduldienstfunktionen umfasst, die für eine Protokollierung und/oder Reproduzierbarkeit und/oder Laufzeitverbesserung und/oder Qualitätssicherung des Verarbeitungsschrittes ausgestaltet sind, wobei • eine Bedienschnittstelle der Vorrichtung ◯ den jeweiligen Programmcode für die Bausteinmodule von einem Nutzer zu empfangen und in jeweils eines der Bausteinmodule einträgt, und ◯ den Datenverarbeitungspfad gemäß einer Nutzervorgabe des Nutzers als einer Kette der Bausteinmodule zu bilden und hierbei die Bausteinmodule zu deren Verkettung über ihre Eingangsschnittstellen einerseits und Ausgabeschnittstellen andererseits miteinander koppelt, • wobei die Prozessorschaltung zum Betreiben des Datenverarbeitungspfads die Daten dem ersten Bausteinmodul der Kette als Eingangsdaten bereitzustellen und den Programmcode der Bausteinmodule ausführt und • beim Ausführen des Programmcodes des jeweiligen Bausteinmoduls selbsttätig auch die Moduldienstfunktionen des Bausteinmoduls mit ausführt, und • der Datenverarbeitungspfad ein Training eines Modells des ML und/oder eine Formatkonvertierung des trainierten Modells und/oder eine Vorverarbeitung von Trainingsdaten des Modells bewirkt.
  11. Computerlesbares Speichermedium mit Programminstruktionen, die bei Ausführen durch eine Prozessorschaltung diese veranlassen, ein Verfahren nach Anspruch 10 durchzuführen.
DE102022112218.2A 2022-05-16 2022-05-16 Vorrichtung und Verfahren zum Bereitstellen von konfigurierbaren Datenverarbeitungspfaden für Daten eines Maschine Learning, ML, sowie zugehöriges computerlesbares Speichermedium Pending DE102022112218A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022112218.2A DE102022112218A1 (de) 2022-05-16 2022-05-16 Vorrichtung und Verfahren zum Bereitstellen von konfigurierbaren Datenverarbeitungspfaden für Daten eines Maschine Learning, ML, sowie zugehöriges computerlesbares Speichermedium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022112218.2A DE102022112218A1 (de) 2022-05-16 2022-05-16 Vorrichtung und Verfahren zum Bereitstellen von konfigurierbaren Datenverarbeitungspfaden für Daten eines Maschine Learning, ML, sowie zugehöriges computerlesbares Speichermedium

Publications (1)

Publication Number Publication Date
DE102022112218A1 true DE102022112218A1 (de) 2023-11-16

Family

ID=88510451

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022112218.2A Pending DE102022112218A1 (de) 2022-05-16 2022-05-16 Vorrichtung und Verfahren zum Bereitstellen von konfigurierbaren Datenverarbeitungspfaden für Daten eines Maschine Learning, ML, sowie zugehöriges computerlesbares Speichermedium

Country Status (1)

Country Link
DE (1) DE102022112218A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094168A1 (en) 2005-07-29 2007-04-26 The Florida International University Board Of Trustees Artificial neural network design and evaluation tool
WO2021041921A1 (en) 2019-08-29 2021-03-04 Here Global B.V. Method, apparatus, and system for dynamic model or model parameter switching for object detection
DE102021113105A1 (de) 2020-05-27 2021-12-02 Nvidia Corporation Techniken zum modifizieren und trainieren eines neuronalen netzwerks
CN113741912A (zh) 2020-05-29 2021-12-03 阿里巴巴集团控股有限公司 模型管理系统、方法、装置及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094168A1 (en) 2005-07-29 2007-04-26 The Florida International University Board Of Trustees Artificial neural network design and evaluation tool
WO2021041921A1 (en) 2019-08-29 2021-03-04 Here Global B.V. Method, apparatus, and system for dynamic model or model parameter switching for object detection
DE102021113105A1 (de) 2020-05-27 2021-12-02 Nvidia Corporation Techniken zum modifizieren und trainieren eines neuronalen netzwerks
CN113741912A (zh) 2020-05-29 2021-12-03 阿里巴巴集团控股有限公司 模型管理系统、方法、装置及设备

Similar Documents

Publication Publication Date Title
DE102019203712B4 (de) Verfahren zum Trainieren wenigstens eines Algorithmus für ein Steuergerät eines Kraftfahrzeugs, Computerprogrammprodukt, Kraftfahrzeug sowie System
WO2021058223A1 (de) Verfahren zur effizienten, simulativen applikation automatisierter fahrfunktionen
DE102018218015A1 (de) Verfahren und Vorrichtung zum Ermitteln eines Zustands einer Fahrzeugleuchte eines Fahrzeugs
DE102017214531A1 (de) Verfahren und Vorrichtung zum Betreiben eines Kraftfahrzeugs in einem automatisierten Fahrbetrieb sowie Kraftfahrzeug
DE102018209595A1 (de) Verfahren zum automatischen Bestimmen eines Straßenzustands
DE102018118190A1 (de) Verfahren und Vorrichtung zur Kontrolle eines Fahrverhaltens eines hochautomatisiert fahrenden Fahrzeugs sowie Infrastrukturanlage, Fahrzeug oder Überwachungsfahrzeug mit der Vorrichtung
DE102020120141A1 (de) Verfahren zum Optimieren von Tests von Regelsystemen für automatisierte Fahrdynamiksysteme mittels probabilistisch prädizierter Systemantworten
EP3983936A1 (de) Verfahren und generator zum erzeugen von gestörten eingangsdaten für ein neuronales netz
DE102017216321A1 (de) Verfahren und Vorrichtung zum Ermitteln einer Fahrfunktion für hochautomatisiertes Fahren für ein Fahrzeug
DE112021005568T5 (de) Datenverarbeitungsvorrichtung und Datenverarbeitungsverfahren
DE102021203587A1 (de) Verfahren und Vorrichtung zum Trainieren eines Stilencoders eines neuronalen Netzwerks und Verfahren zum Erzeugen einer einen Fahrstil eines Fahrers abbildenden Fahrstilrepräsentation
DE102018207566A1 (de) System zum Durchführen von simulierten Kollisionsszenarios von einem Kraftfahrzeug mit einem nicht-motorisierten Verkehrsteilnehmer
DE102022112218A1 (de) Vorrichtung und Verfahren zum Bereitstellen von konfigurierbaren Datenverarbeitungspfaden für Daten eines Maschine Learning, ML, sowie zugehöriges computerlesbares Speichermedium
DE102018204288A1 (de) Verfahren zum Betreiben eines Fahrzeugs in einem dem Fahrzeug und/oder einem Fahrzeugfahrer unbekannten geografischen Gebiet und Verfahren zum Erstellen eines Fahrprofils für ein Fahrzeug für ein vorbestimmtes geografisches Gebiet
DE102017201796A1 (de) Steuervorrichtung zum Ermitteln einer Eigenbewegung eines Kraftfahrzeugs sowie Kraftfahrzeug und Verfahren zum Bereitstellen der Steuervorrichtung
DE102021111462A1 (de) Computerimplementiertes Verfahren zum Szenario-basierten Testen und/oder Homologation von zu testenden zumindest teilweise autonomen Fahrfunktionen durch Key Performance Indicators (KPI)
WO2021089499A1 (de) Verfahren und system zum prüfen einer automatisierten fahrfunktion durch reinforcement-learning
DE102020213809A1 (de) Verfahren zum Betreiben eines Steuergeräts beim Testen einer Software des Steuergeräts und Verfahren zum Betreiben eines Testcomputers beim Testen einer Software eines Steuergeräts
DE102020005467A1 (de) Verfahren zum Verfügbarmachen von anonymisierten, ADAS relevanten Fahrzeugdaten
DE102022112194A1 (de) Konvertierungsvorrichtung und Verfahren zum Konvertieren eines vorgegebenen Modells eines Maschinellen Lernens in ein vorgegebenes Ausgabeformat sowie zugehörigen computerlesbares Speichermedium
DE102022112221A1 (de) Verfahren zum Installieren eines mittels einer Trainingsplattform trainierten Modells des Maschinellen Lernens in eine Prozessorschaltung eines Kraftfahrzeugs sowie computerlesbares Speichermedium, Testplattform und Kraftfahrzeug
DE102022110782A1 (de) Konvertierungsvorrichtung und Verfahren und Computerprogramm zum Konvertieren von Modellen des Maschinellen Lernens sowie System zum Trainieren und Betreiben der Modelle
WO2023046346A1 (de) Verarbeiten von sensordaten in einem steuergerät mittels verlustbehafteter kompression
DE112022002734T5 (de) Fahrzeugsteuersystem und fahrzeugsteuerverfahren
DE102022114913A1 (de) Computerimplementiertes Verfahren zur Verwendung von gespeicherten Spezifikationsanteilen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0008300000

Ipc: G06F0008340000

R016 Response to examination communication