WO2020100393A1 - ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム - Google Patents
ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム Download PDFInfo
- Publication number
- WO2020100393A1 WO2020100393A1 PCT/JP2019/035493 JP2019035493W WO2020100393A1 WO 2020100393 A1 WO2020100393 A1 WO 2020100393A1 JP 2019035493 W JP2019035493 W JP 2019035493W WO 2020100393 A1 WO2020100393 A1 WO 2020100393A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- neural network
- binary signal
- value
- memory
- processing device
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
Definitions
- the present invention relates to a neural network processing device, a neural network processing method, and a neural network processing program.
- CNN Convolutional Neural Networks
- FIG. 11 is a diagram showing a general CNN signal processing flow.
- the CNN has an input layer, an intermediate layer, and an output layer (see Non-Patent Document 1, for example).
- a convolution operation for multiplying an input signal by weight is performed.
- ReLU Rectified Linear Units
- pooling processing is performed in some cases.
- the characteristics of the input signal extracted through the convolution operation are applied to the classifier consisting of the fully connected layer, and the classification result is output from the output layer.
- the convolution operation is repeatedly performed.
- the input value and weight of the input data used for CNN are expressed in, for example, a 32-bit floating point format and may include a decimal point.
- the convolution operation of a conventional neural network such as CNN
- the operation processing is performed in a form in which the number of digits of the operation result is secured.
- Non-Patent Document 2 a CNN that binarizes an input signal of a neural network has been conventionally proposed (see Non-Patent Document 2).
- the binarized neural network can speed up the process and reduce the memory usage.
- the present invention has been made to solve the above-described problems, and provides a neural network processing technique capable of suppressing deterioration in accuracy of a neural network even when a binarized input signal is used.
- the purpose is to provide.
- a neural network processing apparatus includes a first memory that stores a value given to a neural network, a value given to the neural network, and a binary signal corresponding to the value.
- a second memory that stores a table in which the two are associated with each other, a binary signal acquisition unit that refers to the table and acquires a binary signal corresponding to the value stored in the first memory, and the binary signal
- a neural network operation unit that performs an operation of the neural network based on the binary signal acquired by the acquisition unit, and the binary signal has an accuracy matched to the operation accuracy of the neural network set in advance. It is characterized by having.
- a neural network processing program includes a first step of causing a computer to store a value given to a neural network in a first memory, a value given to the neural network, and A second step of storing a table in which a binary signal corresponding to a value is associated with each other in a second memory, and referring to the table, obtaining a binary signal corresponding to the value stored in the first memory.
- the third step and the fourth step of performing the calculation of the neural network based on the binary signal acquired in the third step are executed, and the binary signal is stored in the preset neural network. It is characterized in that it has an accuracy that matches the calculation accuracy.
- the value given to the neural network and the binary signal corresponding to the value are referred to, and the binary signal having the accuracy matched with the calculation accuracy of the preset neural network is determined. Since it is acquired, even when a binarized input signal is used, deterioration of the accuracy of the neural network can be suppressed.
- the “value” given to the CNN is, for example, an “input signal” such as image data described later, and the case of acquiring a binary signal corresponding to such an input signal will be described as an example. explain.
- the CNN processing device 1 described above includes an input buffer (first memory) 10, a weight buffer 11, a storage unit (second memory) 12, a binary signal acquisition unit 13, a convolution operation unit (neural network operation unit) 14, and an output.
- a buffer 15 is provided.
- the input buffer 10 is a memory that stores an input signal given to the CNN. More specifically, the input buffer 10 is realized by a main storage device 103 described later, and the input buffer 10 stores, for example, image data given from the outside.
- the input signal provided to the input buffer 10 may be image data pre-processed in advance. Examples of preprocessing include monochrome conversion, contrast adjustment, and brightness adjustment. Further, the input signal may be reduced to have a bit depth set in the CNN processing device 1 according to a CNN model set in advance.
- the weight buffer 11 is a memory that stores the weight of CNN. More specifically, the weight buffer 11 is realized by a main storage device 103 described later, and the weight buffer 11 is stored in advance in a server (not shown) installed outside the CNN processing device 1, a storage unit 12, or the like. CNN weighting parameters are loaded. As the value of the weight, for example, a 1-bit representation value that has been binarized in advance is used (for example, see Non-Patent Document 2).
- the storage unit 12 stores a table 120 in which a value given to CNN and a binary signal corresponding to the value are associated with each other.
- the binary signal has a precision that matches the preset CNN computation precision.
- this binary signal is a binary signal in which the input signal given to the CNN is replaced with a code containing the amount of information required for the CNN to obtain a desired accuracy. Therefore, the binary signal mentioned here is a signal containing a larger amount of information than the original input signal.
- the binary signal acquisition unit 13 refers to the table 120 and acquires the binary signal corresponding to the input signal stored in the input buffer 10.
- the convolution operation unit 14 performs a convolution operation based on the binary signal acquired by the binary signal acquisition unit 13. More specifically, the convolution operation unit 14 performs a convolution operation based on a binary signal corresponding to an input signal such as image data and the pre-binarized weight read from the weight buffer 11.
- Both the input signal and the weight input to the convolution operation unit 14 are binarized signals. Therefore, the convolution operation executed by the convolution operation unit 14 does not require a multiplication process, and the result of the convolution operation can be obtained by each bit operation process of negative exclusive OR (XNOR), subtraction, and bit shift.
- XNOR negative exclusive OR
- the details of the calculation processing by the convolution calculation unit 14 will be described later.
- the output buffer 15 is a memory that temporarily stores the calculation result of the convolution calculation unit 14.
- the CNN processing device 1 is, for example, a computer including a processor 102, a main storage device 103, a communication interface 104, an auxiliary storage device 105, and an input / output device 106, which are connected via a bus 101, and these. Can be realized by a program that controls the hardware resources of
- a program for the processor 102 to perform various controls and calculations is stored in the main storage device 103 in advance.
- the functions of the CNN processing device 1 including the binary signal acquisition unit 13 and the convolution operation unit 14 illustrated in FIG. 1 are realized by the processor 102 and the main storage device 103.
- the main storage device 103 realizes the input buffer 10, the weight buffer 11, and the output buffer 15 described in FIG.
- the auxiliary storage device 105 is composed of a readable / writable storage medium and a drive device for reading / writing various information such as programs and data from / to the storage medium.
- a semiconductor memory such as a hard disk or a flash memory can be used as a storage medium.
- the auxiliary storage device 105 has a storage area for storing input signals and weights obtained from the outside, and a program storage area for storing a program for the CNN processing device 1 to perform CNN arithmetic processing such as convolution arithmetic.
- the storage unit 12 described in FIG. 1 is realized by the auxiliary storage device 105. Further, for example, it may have a backup area for backing up the above-mentioned data and programs.
- the input / output device 106 is configured by an I / O terminal that inputs a signal from an external device and outputs a signal to the external device.
- a display device (not shown) or the like may be provided via the input / output device 106 to display the calculation result output by the CNN processing device 1.
- CNN processing method Next, the operation of the CNN processing device 1 having the above configuration will be described with reference to FIG. As a premise, it is assumed that the storage unit 12 stores a table 120 in advance. Further, in the following description, it is assumed that the binary signal corresponding to the weight is stored in the storage unit 12 in advance.
- the binary signal acquisition unit 13 refers to the table 120 for the input signal “131” and refers to the 12 bits stored in the input address “131”, for example.
- the binary signal of width “101010111001” is acquired.
- the table 120 stores the binary signal corresponding to the value of the range [0, 255] that the value of the input signal can take.
- the binary signal “101010111001” corresponding to the input signal is a signal including a larger amount of information than the input signal “131”.
- Step S4 the binary signal corresponding to the input signal acquired by the binary signal acquisition unit 13 and the binary signal of the weight read from the weight buffer 11 are input to the convolution operation unit 14, and the convolution operation is performed.
- a binary signal A ′ of an input signal having a 12-bit width and a binary signal U ′ having a 1-bit weight are input to a negative exclusive logical sum (XNOR) circuit, and these binary values are input.
- the NOT exclusive OR of the signals A'and U' is calculated.
- the output of the XNOR circuit is input to the bit count circuit.
- the output of the convolution operation obtained by performing the iterative convolution operation in the convolution layer of CNN is input as the output of the feature extraction unit of CNN to the full connection layer that constitutes the subsequent classifier (not shown), The image data of the input signal A and the like are discriminated.
- the binary signal acquisition unit 13 refers to the table 120, and calculates the preset CNN calculation accuracy corresponding to the input signal. Acquire a binary signal having an accuracy matching with. Further, the CNN processing device 1 performs a convolution operation based on the acquired binary signal. Therefore, even when the binarized input signal is used, it is possible to suppress the deterioration of the accuracy of CNN.
- the input signal stored in the input buffer 10 is, for example, a relatively long integer type or a value including a decimal point
- the input signal is set to the address of the table 120. Convert to the same data type, size, and range of values as the value, and then obtain the binary signal.
- the configuration different from that of the first embodiment will be mainly described.
- the CNN processing device 1A according to the second embodiment further includes a conversion unit 16.
- the other configuration of the CNN processing device 1A is the same as that of the first embodiment.
- the conversion unit 16 converts the data type and size of the input signal stored in the input buffer 10 into the data type and size of the address value in the table 120, and outputs the data.
- the conversion unit 16 when the input signal is an unsigned 16-bit integer type (value range [0,65535]), the conversion unit 16 outputs an unsigned 8-bit integer type (value range: [0 , 255]) and output.
- the binary signal acquisition unit 13 acquires a binary signal corresponding to the value output by the conversion unit 16.
- CNN processing method Next, the CNN processing method according to the present embodiment will be described with reference to FIG. As a premise, it is assumed that the table 120 is stored in the storage unit 12 in advance. Further, in the following description, regarding the weight, it is assumed that the corresponding binary signal is stored in the storage unit 12 in advance.
- the input buffer 10 temporarily stores the input signal A given from a server or the like installed outside the CNN processing device 1 (step S10).
- the input signal A is represented by an unsigned 16-bit integer type (uint16) and is a signal in the range of values [0,65535].
- the conversion unit 16 reads the input signal A from the input buffer 10 and outputs a value obtained by converting the data type and size of the input signal A into the data type and size of the address value of the table 120 (step S11).
- the unsigned 16-bit integer type (uint16) input signal A is converted into an unsigned 8-bit integer type (uint8) value.
- the output obtained by the repeated convolution operation in the CNN convolutional layer is input to the fully connected layer that constitutes the subsequent classifier (not shown) as the output of the CNN feature extraction unit, and the input signal The image data of A and the like are discriminated.
- the input signal is converted into the same data type and size as the data type and size of the address value of the table 120, and then the corresponding binary value is converted. Get the signal. Therefore, even if an input signal including a relatively long integer type or a decimal number is given to the CNN, a binary signal including a larger amount of information can be obtained, and thus deterioration of the accuracy of the CNN is suppressed. be able to.
- the storage unit 12 stores one table 120 has been described.
- the storage unit 12 includes a plurality of tables 120B.
- Each of the plurality of tables 120B stores a binary signal corresponding to each value of the range that the input signal can take. Further, the amount of information included in the binary signal stored in the plurality of tables 120B differs for each table 120B. For example, when the input signal is an unsigned 8-bit integer type, the binary signal “1010101110” associated with each value in the range [0,255], for example, the value “131” and the value “10010101110” in another table 120B.
- the binary signal "110110011110" associated with "131” is a binary signal having different accuracy.
- one table 120B stores a binary signal containing a predetermined amount of information in the range [0, 100], and another table 120B stores the binary signal.
- a binary signal containing an information amount different from the binary signal in the range [0,100] in the range [101,255] can be stored.
- the table selection unit 17 for example, according to the input signal stored in the input buffer 10, from among the plurality of tables 120B, based on a reference regarding the accuracy of the binary signal that is set in advance to the operation accuracy of the CNN. , One table 120B is selected. For example, consider a case where each of red R, green G, and blue B is represented by an unsigned 8-bit integer type (value range [0, 255]) pixel value as an input signal of image data. When increasing the brightness of the image data, a table to be applied can be set in advance for the set value range of the input signal.
- the binary signal acquisition unit 13 refers to the table 120B corresponding to the table information from the table selection unit 17, and acquires the binary signal corresponding to the input signal.
- CNN processing method Next, the operation of the CNN processing device 1B having the above configuration will be described with reference to FIG. As a premise, it is assumed that the storage unit 12 stores a plurality of tables 120B in advance. Further, in the following description, regarding the weight, it is assumed that the corresponding binary signal is stored in the storage unit 12 in advance.
- the input buffer 10 temporarily stores the input signal A given from a server or the like installed outside the CNN processing device 1B (step S20).
- the input signal A is a signal represented by an unsigned 8-bit integer type (uint8).
- the table selection unit 17 reads the input signal A from the input buffer 10 and selects one table 120B from the plurality of tables 120B according to the value of the input signal A (step S21). For example, when the value of the input signal A is “45”, the table selection unit 17 selects LUT1. When the value of the input signal A is in the range of [101, 255], the table selection unit 17 selects LUT2.
- the binary signal stored in the LUT1 and the binary signal stored in the LUT2 are, for example, signals expanded to have different bit numbers from each other. In the example of FIG. 7, the LUT1 stores a 10-bit binary signal, and the LUT2 stores a 12-bit binary signal.
- the binary signal acquisition unit 13 refers to the table 120B (LUT1 or LUT2) selected by the table selection unit 17, and acquires the binary signal A'corresponding to the input signal A (step S22). After that, the binary signal U ′ of the weight stored in the storage unit 12 is transferred to the weight buffer 11 (step S23).
- the binary signal A ′ of the input signal A and the binary signal U ′ of the weight are input to the convolution operation unit 14 and the convolution operation is performed (step S24).
- the convolution operation unit 14 calculates, for example, a negative exclusive logical sum (XNOR) of the binary signals A ′ and U ′ of the input signal and the weight, and performs a bit count (popcnt) to obtain an operation result of the convolution operation.
- the output obtained by repeatedly performing the convolution operation in the convolution layer of CNN is input as the output of the feature extraction unit of CNN to the fully connected layer that constitutes the subsequent classifier (not shown), and the input signal A
- the output signal A The image data and the like are determined.
- a plurality of tables 120B are prepared in the storage unit 12, and the tables 120B are selected according to the value of the input signal to be acquired.
- the amount of information contained in the binary signal can be adjusted.
- the plurality of tables 120C are provided at least for each data type and size of the input signal value given to the CNN.
- the plurality of tables 120C are tables that store binary signals corresponding to unsigned 8-bit integer type input signals and tables that store binary signals corresponding to unsigned 6-bit integer type input signals. Composed of etc.
- the binary signals stored in the plurality of tables are signals expanded so as to have different amounts of information.
- the binary signal corresponding to the unsigned 8-bit integer type input signal may include a larger amount of information as compared with the binary signal corresponding to the unsigned 6-bit integer type input signal. it can.
- the conversion unit 16 converts the data type and size of the input signal based on the determination result of the determination unit 18. For example, as shown in FIG. 9, let us consider a case where the input signal A2 of the unsigned 8-bit integer type input signals A1, A2, A3 is a signal indicating specific information (for example, a pixel value of green G). .. In this case, since the input signals A1 and A3 other than the input signal A2 are relatively low in importance or have a small amount of information, the conversion unit 16 sets the data types and sizes (uint8) of the input signals A1 and A3 to unsigned. Convert to 6-bit integer type (uint6).
- the conversion unit 16 converts the data type and size of the input signal A based on the determination result of the determination unit 18 (step S32). More specifically, as shown in FIG. 9, the conversion unit 16 has a small amount of information or a relatively low degree of importance for input signals A1 and A3 other than the input signal A2 indicating specific information.
- the data type and size are converted from an unsigned 8-bit integer type (uint8) to an unsigned 6-bit integer type (uint6).
- the input signal A2 indicating specific information is maintained as an unsigned 8-bit integer type.
- the table selection unit 17 selects a table that matches the data type and size of the input signal A ′′ converted by the conversion unit 16 from the plurality of tables 120C stored in the storage unit 12 (step S33). Specifically, the table selection unit 17 selects the LUT3 for the input signals A1 ′′ and A3 ′′ converted into the unsigned 6-bit integer type (uint6), and the unsigned 8-bit integer type (uint8). The LUT4 is selected for the signal A2 which remains the data type.
- the binary signal U ′ of the weight stored in the storage unit 12 is transferred to the weight buffer 11 (step S35).
- the binary signal acquisition process according to the described embodiment is applied to at least one layer of the multilayer CNN to suppress a decrease in the accuracy of the CNN, reduce the calculation load in the CNN, and increase the processing speed. Can be realized. Therefore, the effect of the present invention can be obtained with a simpler configuration.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
Description
[第1の実施の形態]
本発明に係るニューラルネットワーク処理装置は、ニューラルネットワークとしてCNNを用いたCNN処理装置1である。
上述したCNN処理装置1は、入力バッファ(第1メモリ)10、重みバッファ11、記憶部(第2メモリ)12、二値信号取得部13、畳み込み演算部(ニューラルネットワーク演算部)14、および出力バッファ15を備える。
次に、上述した機能を有するCNN処理装置1のハードウェア構成の例について図2のブロック図を用いて説明する。
次に、上述した構成を有するCNN処理装置1の動作について図3を参照して説明する。前提として、記憶部12には予めテーブル120が記憶されているものとする。また、以下の説明において、重みについては対応する二値信号が予め記憶部12に記憶されているものとする。
一方、12ビット幅の重みの二値信号U’はインバータ(NOT)において反転されて、その後、ビットカウンタ(popcnt)によって有効ビット値「1」の数がカウントされる。その後ビットカウント回路は、それぞれのビットカウンタからの出力の差分を計算して出力する。
次に、本発明の第2の実施の形態について説明する。なお、以下の説明では、上述した第1の実施の形態と同じ構成については同一の符号を付し、その説明を省略する。
次に、本実施の形態に係るCNN処理方法について図5を参照して説明する。
なお、前提として、記憶部12には予めテーブル120が記憶されているものとする。また、以下の説明において、重みについては、対応する二値信号が予め記憶部12に記憶されているものとする。
次に、本発明の第3の実施の形態について説明する。なお、以下の説明では、上述した第1および第2の実施の形態と同じ構成については同一の符号を付し、その説明を省略する。
次に、上述した構成を有するCNN処理装置1Bの動作について図7を参照して説明する。前提として、記憶部12には予め複数のテーブル120Bが記憶されているものとする。また、以下の説明において、重みについては、対応する二値信号が予め記憶部12に記憶されているものとする。
次に、本発明の第4の実施の形態について説明する。なお、以下の説明では、上述した第1から第3の実施の形態と同じ構成については同一の符号を付し、その説明を省略する。
次に、上述した構成を有するCNN処理装置1Cの動作について、図9および図10を参照して説明する。前提として、記憶部12には予め複数のテーブル120Cが記憶されているものとする。また、以下の説明において、重みについては、対応する二値信号が予め記憶部12に記憶されているものとする。
Claims (8)
- ニューラルネットワークに与えられる値を記憶する第1メモリと、
前記ニューラルネットワークに与えられる値と、その値に対応する二値信号とを互いに関連付けたテーブルを記憶する第2メモリと、
前記テーブルを参照して前記第1メモリに記憶された前記値に対応する二値信号を取得する二値信号取得部と、
前記二値信号取得部によって取得された前記二値信号に基づいて、前記ニューラルネットワークの演算を行うニューラルネットワーク演算部と、
を備え、
前記二値信号は、予め設定された前記ニューラルネットワークの演算精度に合わせた精度を有する
ことを特徴とするニューラルネットワーク処理装置。 - 請求項1に記載のニューラルネットワーク処理装置において、
前記第2メモリは複数のテーブルを記憶し、
前記二値信号取得部は、前記複数のテーブルのうちから選択された一のテーブルを参照して、前記第1メモリに記憶された前記値に対応する二値信号を取得する
ことを特徴とするニューラルネットワーク処理装置。 - 請求項2に記載のニューラルネットワーク処理装置において、
前記第1メモリに記憶された前記値に応じて前記複数のテーブルのうちから、予め設定された前記精度に関する基準に基づいて前記一のテーブルを選択するテーブル選択部をさらに備え、
前記複数のテーブルのそれぞれに記憶されている二値信号は、互いに異なる前記精度を有する
ことを特徴とするニューラルネットワーク処理装置。 - 請求項3に記載のニューラルネットワーク処理装置において、
前記第1メモリに記憶された前記値が特定の情報を示す値であるか否かを判定する判定部と、
前記判定部による判定結果に基づいて前記第1メモリに記憶された前記値のデータ型およびサイズを変換する変換部と、
をさらに備え、
前記複数のテーブルは、少なくとも前記ニューラルネットワークに与えられる値のデータ型およびサイズごとに設けられており、
前記テーブル選択部は、前記変換部によって変換された前記値のデータ型およびサイズに一致するテーブルを前記複数のテーブルのうちから選択し、
前記二値信号取得部は、前記テーブル選択部によって選択されたテーブルを参照して、前記変換部によって変換された前記値に対応する二値信号を取得する
ことを特徴とするニューラルネットワーク処理装置。 - 請求項1から3のいずれか1項に記載のニューラルネットワーク処理装置において、
前記第1メモリが記憶する前記値のデータ型およびサイズを、前記第2メモリが記憶する前記テーブルのアドレス値のデータ型およびサイズに変換して出力する変換部をさらに備え、
前記二値信号取得部は、前記変換部が出力した値に対応する二値信号を取得する
ことを特徴とするニューラルネットワーク処理装置。 - 請求項1から5のいずれか1項に記載のニューラルネットワーク処理装置において、
前記ニューラルネットワークは、少なくとも1層の中間層を有する畳み込みニューラルネットワークであり、
前記ニューラルネットワーク演算部は、前記二値信号取得部によって取得された前記二値信号に基づいて畳み込み演算を行う
ことを特徴とするニューラルネットワーク処理装置。 - ニューラルネットワークに与えられる値を第1メモリに記憶する第1ステップと、
前記ニューラルネットワークに与えられる値と、その値に対応する二値信号とを互いに関連付けたテーブルを第2メモリに記憶する第2ステップと、
前記テーブルを参照して前記第1メモリに記憶された前記値に対応する二値信号を取得する第3ステップと、
前記第3ステップで取得した前記二値信号に基づいて、前記ニューラルネットワークの演算を行う第4ステップと、
を備え、
前記二値信号は、予め設定された前記ニューラルネットワークの演算精度に合わせた精度を有する
ことを特徴とするニューラルネットワーク処理方法。 - コンピュータに、
ニューラルネットワークに与えられる値を第1メモリに記憶する第1ステップと、
前記ニューラルネットワークに与えられる値と、その値に対応する二値信号とを互いに関連付けたテーブルを第2メモリに記憶する第2ステップと、
前記テーブルを参照して前記第1メモリに記憶された前記値に対応する二値信号を取得する第3ステップと、
前記第3ステップで取得した前記二値信号に基づいて、前記ニューラルネットワークの演算を行う第4ステップと、
を実行させ、
前記二値信号は、予め設定された前記ニューラルネットワークの演算精度に合わせた精度を有する
ことを特徴とするニューラルネットワーク処理プログラム。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020504042A JP6885645B2 (ja) | 2018-11-15 | 2019-09-10 | ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム |
| US17/292,661 US12282842B2 (en) | 2018-11-15 | 2019-09-10 | Neural network processing apparatus, neural network processing method, and neural network processing program |
| US19/081,855 US20250217636A1 (en) | 2018-11-15 | 2025-03-17 | Neural network processing apparatus, neural network processing method, and neural network processing program |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018-214570 | 2018-11-15 | ||
| JP2018214570 | 2018-11-15 |
Related Child Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/292,661 A-371-Of-International US12282842B2 (en) | 2018-11-15 | 2019-09-10 | Neural network processing apparatus, neural network processing method, and neural network processing program |
| US19/081,855 Continuation US20250217636A1 (en) | 2018-11-15 | 2025-03-17 | Neural network processing apparatus, neural network processing method, and neural network processing program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020100393A1 true WO2020100393A1 (ja) | 2020-05-22 |
Family
ID=70730465
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2019/035493 Ceased WO2020100393A1 (ja) | 2018-11-15 | 2019-09-10 | ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US12282842B2 (ja) |
| JP (2) | JP6885645B2 (ja) |
| WO (1) | WO2020100393A1 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2021119524A (ja) * | 2018-11-15 | 2021-08-12 | LeapMind株式会社 | ニューラルネットワークモデル、ニューラルネットワーク処理装置、およびニューラルネットワークの演算方法 |
| JP2021193565A (ja) * | 2020-06-08 | 2021-12-23 | 三星電子株式会社Samsung Electronics Co., Ltd. | ニューラルネットワークを具現化する装置及びその動作方法 |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102562322B1 (ko) * | 2021-11-29 | 2023-08-02 | 주식회사 딥엑스 | 이진화 신경망(bnn)을 위한 신경 프로세싱 유닛 |
| CN119675842A (zh) * | 2025-02-19 | 2025-03-21 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种高效密态联合神经网络推理方法及系统 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006127350A (ja) * | 2004-11-01 | 2006-05-18 | Kddi Corp | 多層ニューラルネットワーク装置とそのソフトウェア |
| JP2018092377A (ja) * | 2016-12-02 | 2018-06-14 | 国立大学法人東京工業大学 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9563825B2 (en) * | 2014-11-20 | 2017-02-07 | Adobe Systems Incorporated | Convolutional neural network using a binarized convolution layer |
| CN108351986B (zh) | 2015-10-30 | 2022-03-29 | 株式会社摩如富 | 学习系统及装置和方法、训练数据生成装置及生成方法 |
| US10089577B2 (en) * | 2016-08-05 | 2018-10-02 | Xilinx, Inc. | Binary neural networks on progammable integrated circuits |
| WO2020100393A1 (ja) | 2018-11-15 | 2020-05-22 | LeapMind株式会社 | ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム |
-
2019
- 2019-09-10 WO PCT/JP2019/035493 patent/WO2020100393A1/ja not_active Ceased
- 2019-09-10 JP JP2020504042A patent/JP6885645B2/ja active Active
- 2019-09-10 US US17/292,661 patent/US12282842B2/en active Active
-
2021
- 2021-05-06 JP JP2021078513A patent/JP7274180B2/ja active Active
-
2025
- 2025-03-17 US US19/081,855 patent/US20250217636A1/en active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006127350A (ja) * | 2004-11-01 | 2006-05-18 | Kddi Corp | 多層ニューラルネットワーク装置とそのソフトウェア |
| JP2018092377A (ja) * | 2016-12-02 | 2018-06-14 | 国立大学法人東京工業大学 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
Non-Patent Citations (1)
| Title |
|---|
| SHIMODA, MASAYUKI ET AL.: "All Binarized Conventional Neural Network and its Implementation on an FPGA", IEICE TECHNICAL REPORT, vol. 117, no. 378, 11 January 2018 (2018-01-11), pages 7 - 11, XP033313515, ISSN: 0913-5685 * |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2021119524A (ja) * | 2018-11-15 | 2021-08-12 | LeapMind株式会社 | ニューラルネットワークモデル、ニューラルネットワーク処理装置、およびニューラルネットワークの演算方法 |
| US12282842B2 (en) | 2018-11-15 | 2025-04-22 | Maxell, Ltd. | Neural network processing apparatus, neural network processing method, and neural network processing program |
| JP2021193565A (ja) * | 2020-06-08 | 2021-12-23 | 三星電子株式会社Samsung Electronics Co., Ltd. | ニューラルネットワークを具現化する装置及びその動作方法 |
| JP7708381B2 (ja) | 2020-06-08 | 2025-07-15 | 三星電子株式会社 | ニューラルネットワークを具現化する装置及びその動作方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2021119524A (ja) | 2021-08-12 |
| JPWO2020100393A1 (ja) | 2021-02-15 |
| JP7274180B2 (ja) | 2023-05-16 |
| US12282842B2 (en) | 2025-04-22 |
| US20220004857A1 (en) | 2022-01-06 |
| JP6885645B2 (ja) | 2021-06-16 |
| US20250217636A1 (en) | 2025-07-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7274180B2 (ja) | プログラム、ニューラルネットワーク処理コンピュータ、ニューラルネットワーク処理装置、およびニューラルネットワークの演算方法 | |
| US11580719B2 (en) | Dynamic quantization for deep neural network inference system and method | |
| EP3674883A1 (en) | Multiplication circuit, system on chip, and electronic device | |
| CN112422980B (zh) | 图像数据解压缩 | |
| US11663743B2 (en) | Image data decompression | |
| US12008791B2 (en) | Image data compression | |
| US20210004679A1 (en) | Asymmetric quantization for compression and for acceleration of inference for neural networks | |
| US20220256164A1 (en) | Data Compression and Packing | |
| US20250097442A1 (en) | Data decompression and packing | |
| CN110888623B (zh) | 数据转换方法、乘法器、加法器、终端设备及存储介质 | |
| CN115423716B (zh) | 基于多维滤波的图像增强方法、装置、设备及存储介质 | |
| GB2566050A (en) | Luminance-normalised colour spaces | |
| TWI880914B (zh) | 類神經網路處理裝置、類神經網路處理方法、類神經網路處理電腦、運算方法及程式 | |
| CN110390389B (zh) | 神经网络引擎 | |
| CN108305234A (zh) | 一种基于最优化模型的双直方图均衡方法 | |
| CN114026847A (zh) | 使用混合查找表方案对高动态范围视频的预处理 | |
| TW201505425A (zh) | 在資料處理裝置內實施的低複雜度雙邊濾波(bf) | |
| KR102803170B1 (ko) | 부동 소수점 데이터 압축을 위한 방법 및 장치 | |
| US20240348798A1 (en) | Palette intra prediction for video encoding | |
| CN120235790A (zh) | 用于图像恢复的方法和电子装置 | |
| CN116206115A (zh) | 一种低功耗芯片及其数据处理方法、存储介质 | |
| CN118158423A (zh) | 图像数据压缩 | |
| CN118158393A (zh) | 图像数据解压缩 | |
| CN120704739A (zh) | 一种数据格式转换装置及方法、电子设备和存储介质 | |
| JP2016105543A (ja) | 画像処理装置、及びプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ENP | Entry into the national phase |
Ref document number: 2020504042 Country of ref document: JP Kind code of ref document: A |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19885148 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19885148 Country of ref document: EP Kind code of ref document: A1 |
|
| WWG | Wipo information: grant in national office |
Ref document number: 17292661 Country of ref document: US |