IP Library Granted Patent US 11,989,639
Granted Patent B2
US 11,989,639 · App. 16/977,349 · Granted May 21, 2024

Inferential device, convolutional operation method, and program

Inventor: Seiya Shibata (Tokyo, JP)
Assignee: NEC CORPORATION
G06N3/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 11,989,639
App. No.
16/977,349
Filed
Sep 1, 2020
Granted
May 21, 2024
Kind
B2
Art Unit
2176
USPC
706/26
Abstract

An inferential device, including a quantization part that quantizes a result of a convolutional operation in a convolutional neural network using input data and weights; a convolutional operation part that performs a convolutional operation using the quantized operation result as input data; and an input data conversion part that converts the input data to a first layer to enable the convolutional operation part to process both the input data to the first layer and the input data that is quantized by the quantization part in a same way.

Claims (38)

1. An inferential device, comprising:

a quantization part that quantizes a result of a convolutional operation in a first layer of a convolutional neural network using input data and weights to obtain input data for the convolutional operation in a next layer;

a convolutional operation part that includes a plurality of a shift operator and adder that is arranged for each channel that composes the input data, executes a shift operation regarding elements of the channel and weights corresponding to the elements of the channel, and adds a result of the shift operation, and an adder that adds the results of operation of the plurality of the shift operator and adder, and executes a multiplication process in the convolutional operation by the shift operation according to the value of each of elements that compose the acquired input data; and

an input data conversion part that extends a channel included in the input data to the first layer to a same number of subchannels as a number of bits of elements that compose the input data to the first layer, generates a sequence of data, provided that the value of each of the elements of a channel included in the input data to the first layer is expressed in binary numbers, by converting a value in a digit with value ‘1’ to a value that indicates a position of the value ‘1’, and by converting a value in a digit with value ‘0’ to a value that indicates a true zero, and assign each of the elements that compose the sequence of the data to each of the elements of the subchannels to enable the convolutional operation part to process both the input data to the first layer and the input data that is quantized by the quantization part in a same way.

2. The inferential device according to claim 1 ; wherein

the input data conversion part is configured to assign each of the elements that compose the sequence of the data to a position of an element of the subchannel corresponding to the position of each of the elements of the channel included in the input data to the first layer.

3. The inferential device according to claim 1 ; further comprising:

an input data storage part that stores the input data; and

an input data acquisition part that accesses the input data storage part, acquires the input data; wherein

the input data acquisition part is configured to provide the acquired input data for the input data conversion part in case where the acquired data is used for a convolutional operation of the first layer, and provide the acquired data for the convolutional operation part in case where the acquired data is used for a convolutional operation of the second layer or later.

4. The inferential device according to claim 1 ; further comprising:

a weight duplicate part that duplicates a weight corresponding to a channel included in the input data to the first layer such that the number of weights corresponding to a channel included in the input data to the first layer becomes the same as the number of the extended subchannels.

5. The inferential device according to claim 4 ; further comprising:

a weight storage part that stores the weights;

a weight acquisition part that accesses the weight storage part to acquire the weights; wherein

the weight acquisition part is configured to:

provide the acquired weights to the weight duplicate part when the acquired weights are used for a convolutional operation of the first layer, and

provide the acquired weights to the convolutional operation part in case where the acquired weights are used for a convolutional operation of the second layer or later.

6. The inferential device according to claim 1 ; wherein

the quantization part is configured to round the result of the convolutional operation to a power of two, and convert a target data of quantization to an exponent whose the base is 2 or a value indicating whether or not the quantizated data is true zero.

7. The inferential device according to claim 1 ; further comprising:

a bias change part that converts a bias corresponding to the input data to the first layer using the input data to the first layer and weights corresponding to the input data to the first layer, and adds the converted bias to the result of the convolutional operation of the first layer.

8. A method of performing a convolutional operation performed in an inferential device, comprising:

a quantization part that quantizes a result of a convolutional operation in a convolutional neural network using an input data and weights; and

a convolutional operation part that includes a plurality of a shift operator and adder that is arranged for each channel that composes the input data, executes a shift operation regarding elements of the channel and weights corresponding to the elements of the channel, and adds a result of the shift operation, and an adder that adds the results of operation of the plurality of the shift operator and adder, and executes a multiplication process in the convolutional operation by the shift operation according to a value of each of elements that compose the acquired input data,

the method comprising:

acquiring the input data;

extending a channel included in the input data to a first layer to a same number of subchannels as a number of bits of elements that compose the input data to the first layer;

generating a sequence of data, provided that the value of each of the elements of a channel included in the input data to the first layer is expressed in binary numbers, by converting a value in a digit with value ‘1’ to a value that indicates a position of the value ‘1’, and by converting a value in a digit with value ‘0’ to a value that indicates a true zero; and

assigning each of the elements that compose the sequence of the data to each of the elements of the subchannels to enable to process both the input data to the first layer and the input data that is quantized by the quantization part in a same way in case where the acquired data is used for a convolutional operation of the first layer.

9. A non-transient computer readable medium storing a program, executed by a computer that performs a convolutional operation, installed in an inferential device comprising:

a quantization part that quantizes a result of a convolutional operation in a convolutional neural network using input data and weights; and

a convolutional operation part that includes a plurality of a shift operator and adder that is arranged for each channel that composes the input data, executes a shift operation regarding elements of the channel and weights corresponding to the elements of the channel, and adds a result of the shift operation, and an adder that adds the results of operation of the plurality of the shift operator and adder, and executes a multiplication process in the convolutional operation by the shift operation according to a value of each of elements that compose the acquired input data, wherein

the program causes the computer to perform processings of:

acquiring input data;

extending a channel included in the input data to the first layer to a same number of subchannels as a number of bits of elements that compose the input data to the first layer;

generating a sequence of data, provided that the value of each of the elements of a channel included in the input data to the first layer is expressed in binary numbers, by converting a value in a digit with value ‘1’ to a value that indicates a position of the value ‘1’, and by converting a value in a digit with value ‘0’ to a value that indicates a true zero; and

assigning each of the elements that compose the sequence of the data to each of the elements of the subchannels to enable to process both the input data to the first layer and the input data that is quantized by the quantization part in a same way in case where the acquired data is used for a convolutional operation of the first layer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2020
From: SHIBATA, SEIYA
To: NEC CORPORATION
Reel/Frame 054272/0971 →
Priority Claims (1)
JP 2018-038029 · Mar 2, 2018 · national
Continuity (1)
Related Publication 20210110236A1 · Apr 15, 2021