IP Library › Granted Patent US 12,561,554
Granted Patent B2
US 12,561,554 · App. 17/172,707 · Granted Feb 24, 2026

Error identification for an artificial neural network

Inventors: Sebastian Vogel (Schaidt, DE); Christoph Schorn (Leonberg, DE); Michael Klaiber (Stuttgart, DE)
Assignee: ROBERT BOSCH GMBH
G06N3/08G06N3/04
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,561,554
App. No.
17/172,707
Granted
Feb 24, 2026
Kind
B2
Abstract

A device and method for machine learning using an artificial neural network. For a calculation hardware for the artificial neural network, a layer description is provided, which defines at least one part of a layer of the artificial neural network, the layer description defining a tensor for input values of at least one part of this layer, a tensor for weights of at least one part of this layer, and a tensor for output values of at least one part of this layer, in particular of its starting address. A message that includes a start address of the tensor for the input values, or of the tensor for the weighs, or of the tensor for the output values is sent by the calculation hardware for transfer of the input values, or the weights, or the output values, is sent by the calculation hardware.

Claims (75)

1 . A method for using an artificial neural network, the method comprising the following steps:

providing a layer description by a host processor to a memory controller, which defines at least one part of a layer of the artificial neural network, for a calculation hardware for the artificial neural network, the layer description defining a tensor for input values of at least one part of the layer, a tensor for weights of at least one part of the layer and a tensor for output values of at least one part of the layer, the memory controller storing the layer description in a memory;

receiving, via a data bus by the memory controller from the calculation hardware at least one message that includes: (i) a start address of the tensor for the input values in the memory for a transfer of the input values, and/or (ii) a start address of the tensor for the weights in the memory for a transfer of the weights, and/or (iii) a start address of the tensor for the output values in the memory for a transfer of the output values;

transferring, via the data bus by the memory controller to the calculation hardware, a plurality of weights from the memory to the calculating hardware for storing in the calculation hardware for the artificial neural network;

determining, by the memory controller, a sum as a function of the plurality of weights, when the plurality of weights is transferred by the memory controller from the memory to the calculation hardware via the data bus;

transferring, via the data bus by the memory controller to the calculation hardware, a plurality of input values from the memory for storing in the calculation hardware for the artificial neural network;

determining, by the memory controller, a reference value as a function of the plurality of the input values and of the sum, when the plurality of input values is transferred by the memory controller from the memory to the calculation hardware via the data bus;

receiving, via the data bus by the memory controller from the calculation hardware, a plurality of output values determined by the calculation hardware as a function of the plurality of input values and the plurality of weights;

determining, by the memory controller, a test sum as a function of the plurality of output values when the plurality of output values is received from the calculation hardware at the memory controller via the data bus;

checking, by the memory controller, the test sum in comparison with the reference value;

identifying, by the memory controller, an error based on a result of the comparison;

based on the identifying of the error, sending, via the data bus by the memory controller to the host processor, an error signal; and

triggering, by the memory controller based on the identifying of the error, a recalculation by the calculation hardware, of at least one portion of the output values;

wherein the memory controller, the hardware calculation hardware, and the processor are separate from one another,

wherein communication between the between the calculation hardware and the memory takes place exclusively via the memory controller, and

wherein communication between the processor and the memory takes place exclusively via the memory controller.

2 . The method as recited in claim 1 , wherein for the calculation hardware, a network description for the artificial neural network is provided, which includes a list for a number of layer descriptions, one layer description of the number of layer descriptions including a number of memory tile descriptions, one memory tile description from the number of memory tile descriptions including the start address of the tensor for input values of the at least one part of the layer, the start address of the tensor for weights of the at least one part of the layer, and the start address of the tensor for output values of the at least one part of the layer, the message received by the memory controller from the calculation hardware identifying the memory tile description in the list, the memory tile description being received by the calculation hardware from the memory controller in response to the message, and the start addresses of the tensors being determined as a function of the memory tile description.

3 . The method as recited in claim 1 , wherein an error identification is carried out for at least one layer of the artificial neural network.

4 . The method as recited in claim 1 , wherein a read request for a plurality of weights of one layer of an artificial neural network is received, the plurality of weights being read from the memory.

5 . The method as recited in claim 4 , wherein a read request for a plurality of input values for the layer of the artificial neural network is received, the plurality of input values being read from the memory.

6 . The method as recited in claim 5 , wherein a plurality of output values of the layer is determined as a function of the plurality of input values and of the plurality of weights.

7 . The method as recited in claim 5 , wherein when no error is identified, a result value is determined as a function of an output value of the plurality of output values and as a function of an activation function.

8 . The method according to claim 1 , wherein the reference value is determined using a two-dimensional convolution.

9 . A non-transitory computer-readable storage medium on which is stored a computer program including computer-readable instructions for machine learning using an artificial neural network, the instructions, when executed by a computer, causing the computer to perform the following steps:

providing a layer description by a host processor to a memory controller, which defines at least one part of a layer of the artificial neural network, for a calculation hardware for the artificial neural network, the layer description defining a tensor for input values of at least one part of the layer, a tensor for weights of at least one part of the layer and a tensor for output values of at least one part of the layer, the memory controller storing the layer description in a memory; and

receiving, via a data bus by the memory controller from the calculation hardware: (i) a message that includes a start address of the tensor for the input values in the memory for a transfer of the input values, or (ii) a message that includes a start address of the tensor for the weights in the memory for a transfer of the weights, or (iii) a message that includes a start address of the tensor for the output values in the memory for a transfer of the output values;

transferring, via a data bus by the memory controller to the calculation hardware, a plurality of weights from the memory to the calculating hardware for storing in the calculation hardware for the artificial neural network;

determining, by the memory controller, a sum of the plurality of weights, when the plurality of weights is transferred by the memory controller from the memory to the calculation hardware via the data bus;

transferring, via the data bus by the memory controller to the calculation hardware, a plurality of input values from the memory for storing in the calculation hardware for the artificial neural network;

determining, by the memory controller, a reference value as a function of the plurality of the input values and of the sum, when the plurality of input values is transferred by the memory controller from the memory to the calculation hardware via the data bus;

receiving, via the data bus by the memory controller from the calculation hardware, a plurality of output values determined by the calculation hardware as a function of the plurality of input values and the plurality of weights;

determining, by the memory controller, a test sum as a function of the plurality of output values when the plurality of output values is received from the calculation hardware at the memory controller via the data bus;

checking, by the memory controller, the test sum in comparison with the reference value;

identifying, by the memory controller, an error based on a result of the comparison;

based on the identifying of an error, sending, via the data bus by the memory controller to the host processor, an error signal; and

triggering, by the memory controller, based on the identifying of the error, a recalculation by the calculation hardware, of at least one portion of the output values;

wherein the memory controller, the hardware calculation hardware, and the processor are separate from one another,

wherein communication between the between the calculation hardware and the memory takes place exclusively via the memory controller, and

wherein communication between the processor and the memory takes place exclusively via the memory controller.

10 . The non-transitory computer-readable storage medium according to claim 9 , wherein the reference value is determined using a two-dimensional convolution.

11 . A device for machine learning using an artificial neural network, the device configured to:

provide a layer description, which defines at least one part of a layer of the artificial neural network, for a calculation hardware for the artificial neural network, the layer description defining a tensor for input values of at least one part of the layer, a tensor for weights of at least one part of the layer and a tensor for output values of at least one part of the layer; and

receive, via a data bus by a memory controller from the calculation hardware: (i) a message that includes a start address of the tensor for the input values in a memory for a transfer of the input values, or (ii) a message that includes a start address of the tensor for the weights in the memory for a transfer of the weights, or (iii) a message that includes a start address of the tensor for the output values in the memory for a transfer of the output values;

transfer, via a data bus by the memory controller to the calculation hardware, a plurality of weights from the memory to the calculating hardware for storing in the calculation hardware for the artificial neural network;

determine, by the memory controller, a sum of the plurality of weights, when the plurality of weights is transferred by the memory controller from the memory to the calculation hardware via the data bus;

transfer, via the data bus by the memory controller to the calculation hardware, a plurality of input values from the memory for storing in the calculation hardware for the artificial neural network;

determine, by the memory controller, a reference value as a function of the plurality of the input values and of the sum, when the plurality of input values is transferred by the memory controller from the memory to the calculation hardware via the data bus;

receive, via the data bus by the memory controller from the calculation hardware, a plurality of output values determined by the calculation hardware as a function of the plurality of input values and the plurality of weights;

determine, by the memory controller, a test sum as a function of the plurality of output values when the plurality of output values is received from the calculation hardware at the memory controller via the data bus;

check, by the memory controller, the test sum in comparison with the reference value;

identify, by the memory controller, an error based on a result of the comparison;

based on the identifying of the error, send, via the data bus by the memory controller to a host processor, an error signal; and

trigger, by the memory controller, based on the identifying of the error, a recalculation by the calculation hardware, of at least one portion of the output values;

wherein the memory controller, the hardware calculation hardware, and the processor are separate from one another,

wherein communication between the between the calculation hardware and the memory takes place exclusively via the memory controller, and

wherein communication between the processor and the memory takes place exclusively via the memory controller.

12 . The device according to claim 11 , wherein the reference value is determined using a two-dimensional convolution.

13 . A method for using an artificial neural network, the method comprising the following steps:

providing a layer description by a host processor to a memory controller, which defines at least one part of a layer of the artificial neural network, for a calculation hardware for the artificial neural network, the layer description defining a tensor for input values of at least one part of the layer, a tensor for weights of at least one part of the layer and a tensor for output values of at least one part of the layer, the memory controller storing the layer description in a memory;

receiving, via a data bus by the memory controller from the calculation hardware: (i) a message that includes a start address of the tensor for the input values in the memory for a transfer of the input values, or (ii) a message that includes a start address of the tensor for the weights in the memory for a transfer of the weights, or (iii) a message that includes a start address of the tensor for the output values in the memory for a transfer of the output values;

transferring, via the data bus by the memory controller to the calculation hardware, a plurality of weights from the memory for storing in the calculation hardware for the artificial neural network;

transferring, via the data bus by the memory controller to the calculation hardware, a plurality of input values from the memory for storing in the calculation hardware for the artificial neural network;

determining, by the memory controller, a sum of the plurality of input values, when the plurality of input values is transferred by the memory controller from the memory to the calculation hardware via the data bus;

determining, by the memory controller, a reference value as a function of the plurality of weights and of the sum when the plurality of weights is transferred by the memory controller from the memory to the calculation hardware via the data bus for storing in the calculation hardware;

receiving, via the data bus by the memory controller, a plurality of output values determined by the calculation hardware as a function of the plurality of input values and the plurality of weights;

determining, via the data bus by the memory controller, a test sum as a function of the plurality of output values, when the plurality of output values is received from the calculation hardware at the memory controller via the data bus;

checking, via the data bus by the memory controller, the test sum in a comparison with the reference value;

identifying, by the memory controller, an error based on a result of the comparison;

based on the identifying of the error, sending, via the data bus by the memory controller to the host processor, an error signal; and

triggering, by the memory controller, based on the identifying of the error, a recalculation by the calculation hardware, of at least one portion of the output values;

wherein the memory controller, the hardware calculation hardware, and the processor are separate from one another,

wherein communication between the between the calculation hardware and the memory takes place exclusively via the memory controller, and

wherein communication between the processor and the memory takes place exclusively via the memory controller.

14 . The method as recited in claim 13 , wherein an error identification is carried out for at least one layer of the artificial neural network.

15 . The method according to claim 13 , wherein the reference value is determined using a two-dimensional convolution.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2021
From: VOGEL, SEBASTIAN; SCHORN, CHRISTOPH; KLAIBER, MICHAEL
To: ROBERT BOSCH GMBH
Reel/Frame 057612/0158 →
Priority Claims (1)
DE 102020202093.0 · Feb 19, 2020 · national
Continuity (1)
Related Publication 20210256376A1 · Aug 19, 2021
References Cited (18)
US 11232016B1 · Huynh · 2022 [cited by examiner]
US 20160379109A1 · Chung · 2016 [cited by examiner]
US 20180174658A1 · Kikuchi · 2018 [cited by examiner]
US 20180300600A1 · Ma · 2018 [cited by examiner]
US 20190121734A1 · Akopyan et al. · 2019 [cited by applicant]
US 20190227871A1 · Wu · 2019 [cited by examiner]
US 20190265701A1 · Troia et al. · 2019 [cited by applicant]
US 20190317857A1 · Khan · 2019 [cited by examiner]
US 20190392296A1 · Brady et al. · 2019 [cited by applicant]
US 20200117453A1 · Zhang · 2020 [cited by examiner]
US 20200159809A1 · Catthoor · 2020 [cited by examiner]
US 20210173787A1 · Nagy · 2021 [cited by examiner]
EP 0976039B1 · 2008 [cited by applicant]
EP 3506095A2 · 2019 [cited by applicant]
EP 3640862A1 · 2020 [cited by applicant]
WO 2019009993A1 · 2019 [cited by applicant]
WO 2019157812A1 · 2019 [cited by applicant]
Dietterich et al., “Solving Multiclass Learning Problems via Error-Correcting Output Codes,” https://arxiv.org/pdf/cs/9501101, (Year: 1995). [cited by examiner]