Neural network structure proposal device and neural network structure proposal method

The neural network structure proposing device optimizes neural network structures for computational efficiency by replacing layers with high execution time and low efficiency, enhancing performance in edge devices without compromising accuracy.

JP2024170733APending Publication Date: 2024-12-11NEC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023087411
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-05-29
Publication Date
2024-12-11

AI Technical Summary

Technical Problem

Existing methods for determining neural network structures prioritize recognition accuracy over execution speed, leading to potential underutilization of hardware devices and decreased computational efficiency, especially in edge equipment with biased characteristics.

Method used

A neural network structure proposing device and method that calculates the estimated execution time and calculation efficiency for each layer of a neural network on a target device, replacing layers with high execution time and low efficiency with alternative layers to optimize computational efficiency.

Benefits of technology

Facilitates the finding of a neural network structure suitable for a device, improving execution speed while maintaining recognition accuracy, particularly in edge devices with limited resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2024170733000001_ABST
    Figure 2024170733000001_ABST
Patent Text Reader

Abstract

To facilitate finding of a neural network structure suitable for a device.SOLUTION: A neural network structure proposal device 1 includes calculation efficiency analysis means 2 and layer structure replacement means 3. The calculation efficiency analysis means calculates an execution time estimation amount of a layer and calculation efficiency corresponding to a calculation amount per unit time in a target device for each of multiple layers that are a neural network layer and have different parameters. The layer structure replacement means replaces a layer whose execution time estimation amount is large and arithmetic efficiency is low with other layer and outputs neural network structure information showing structure of the neural network.SELECTED DRAWING: Figure 10
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a neural network structure proposing device and a neural network structure proposing method for proposing a neural network structure. [Background technology]

[0002] When determining the structure of a neural network in the field of deep learning, especially the structure of a deep neural network, it is important to be able to perform processing at high speed while maintaining high recognition accuracy. Hereinafter, unless otherwise specified, the neural network is assumed to be a network including a deep neural network. The determination and improvement of the neural network structure are left to experts with extensive expertise and experience.

[0003] Experts tend to prioritize the recognition accuracy of a neural network over the execution speed of a hardware device for implementing the neural network when determining or improving the structure of the neural network. In other words, experts generally determine or improve the structure of a neural network with a primary focus on improving the recognition accuracy.

[0004] NAS (Neural Architecture Search) is a method that can automatically search for neural network structures.

[0005] Non-Patent Document 1 describes a neural architecture search method that takes execution time into consideration. Non-Patent Document 2 describes a method of pruning layers while re-learning a trained model. [Prior art documents] [Non-patent literature]

[0006] [Non-Patent Document 1] Mingxing Tan, et.al., "MnasNet: Platform-Aware Neural Architecture Search for Mobile", Conference on Computer Vision and Pattern Recognition (CVPR), 2019, pp.2820-2828 [Non-Patent Document 2] Ariel Gordon, et.al., "MorphNet: Fast & Simple Resource-Constrained Structure Learning of Deep Network", Conference on Computer Vision and Pattern Recognition (CVPR), 2018, pp.1586-1594 Summary of the Invention [Problem to be solved by the invention]

[0007] As described above, experts determine and improve the structure of neural networks with the primary goal of improving recognition accuracy. As a result, although the recognition accuracy is improved, the performance of the hardware device may not be fully utilized. In other words, there is a risk that a neural network structure with a low execution speed may be configured.

[0008] The number of parameters, the amount of calculation, and the execution speed are not necessarily correlated. For example, a device such as a deep learning dedicated accelerator mounted on an edge device may be configured to improve the execution speed at the expense of versatility. As a result, the device may have biased characteristics. One example of biased characteristics is the existence of processes that the device is good at and processes that it is not good at. For such reasons, it is difficult to fully utilize the processing performance of the device. In other words, the computing efficiency of the device is low.

[0009] The computation efficiency is the amount of calculations that can be processed per unit time. Indicators such as GOPS (Giga Operations Per Second) or GFLOPS (Giga Floating-point Operations Per Second) are used to measure computation efficiency.

[0010] If the computing efficiency when performing calculations using a certain neural network structure is equal to the peak performance of the hardware device (which can be expressed in GOPS or GFLOPS, etc.), then it can be said that the device's processing performance is being maximized. However, if the computing efficiency is significantly lower than the peak performance, then the device's processing performance is not being fully utilized.

[0011] In order to search for a neural network structure that is suitable for a device and has high computational efficiency, experts who are familiar with both the characteristics of the device and neural networks are required.

[0012] In addition, there are devices whose execution speed changes significantly even if a slight change is made to the neural network structure. When building a neural network structure for such a device, experts need to repeat trial and error. Therefore, it is not easy for experts to obtain a neural network structure with high computational efficiency.

[0013] Even when using NAS, it is difficult to directly obtain a neural network structure that improves the computational efficiency of each layer.

[0014] An object of the present invention is to provide a neural network structure proposing device and a neural network structure proposing method that can facilitate finding a neural network structure suitable for a device. [Means for solving the problem]

[0015] The neural network structure proposal device according to the present invention includes a computational efficiency analysis means for calculating, for each of a plurality of layers of a neural network having different parameters, an estimated execution time of the layer in a target device and a computational efficiency equivalent to the amount of calculation per unit time, and a layer structure replacement means for replacing a layer having a large estimated execution time and low computational efficiency with another layer, and outputting neural network structure information indicating the structure of the neural network.

[0016] The neural network structure proposing method of the present invention calculates, by a computer, for each of a plurality of neural network layers having different parameters, an estimated execution time and a computational efficiency equivalent to the amount of calculation per unit time for the layer on a target device, replaces layers with large estimated execution time and low computational efficiency with other layers, and outputs neural network structure information that indicates the structure of the neural network.

[0017] The neural network structure proposal program of the present invention causes a computer to calculate, for each of a plurality of neural network layers having different parameters, an estimated execution time and a computational efficiency equivalent to the amount of calculation per unit time for the layer on a target device, replace a layer with a large estimated execution time and low computational efficiency with another layer, and output neural network structure information indicating the structure of the neural network. Effect of the Invention

[0018] According to the present invention, it is possible to easily find a neural network structure suitable for a device. [Brief description of the drawings]

[0019] [Figure 1] FIG. 1 is a block diagram showing an example of the configuration of a neural network structure proposing device. [Diagram 2]FIG. 11 is an explanatory diagram showing an example of input neural network structure information. [Diagram 3] FIG. 11 is an explanatory diagram illustrating an example of target device characteristic information. [Figure 4] FIG. 11 is an explanatory diagram illustrating an example of computation efficiency information. [Diagram 5] FIG. 11 is an explanatory diagram showing an example of layer replacement candidate information. [Figure 6] FIG. 11 is an explanatory diagram showing an example of output neural network structure information. [Figure 7] 4 is a flowchart showing the operation of the neural network structure proposing device. [Figure 8] FIG. 11 is an explanatory diagram showing an example of kernel size enlargement; [Figure 9] 1 is a block diagram showing an example of the configuration of an information processing device capable of realizing the functions of a neural network structure proposal device. [Figure 10] 1 is a block diagram showing a main part of a neural network structure proposing device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0020] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

[0021] Fig. 1 is a block diagram showing a configuration example of a neural network structure proposal device. The neural network structure proposal device 10 shown in Fig. 1 includes a computation efficiency analysis unit 20, a layer structure replacement unit 30, a target device characteristic information storage unit 40, and a layer replacement candidate information storage unit 50. The target device characteristic information storage unit 40 and the layer replacement candidate information storage unit 50 may be present outside the neural network structure proposal device 10.

[0022] The computation efficiency analysis unit 20 inputs neural network structure information. The neural network structure information is information capable of identifying the structure of a neural network. The neural network used in this embodiment is mainly a convolutional neural network (CNN), but may be another type of neural network. Hereinafter, the neural network structure information input to the computation efficiency analysis unit 20 is referred to as input neural network structure information.

[0023] The computation efficiency analysis unit 20 creates computation efficiency information using the target device characteristic information stored in the target device characteristic information storage unit 40. The computation efficiency analysis unit 20 outputs the computation efficiency information to the layer structure replacement unit 30. The target device is a hardware device in which a neural network whose structure is to be determined is implemented, that is, a hardware device for realizing the neural network.

[0024] The layer structure replacement unit 30 performs layer replacement based on the layer replacement candidate information and the computation efficiency information stored in the layer replacement candidate information storage unit 50, to generate neural network structure information. The layer structure replacement unit 30 outputs the neural network structure information. The layer replacement is, for example, changing the parameters of the layer. In other words, the layer replacement can be realized by changing the parameters. However, as described later, the layer replacement is not limited to changing the parameters of the layer, and the concept of layer replacement may also include changing the type of the layer. Hereinafter, the neural network structure information output by the layer structure replacement unit 30 is referred to as output neural network structure information.

[0025] Fig. 2 is an explanatory diagram showing an example of input neural network structure information. In the example shown in Fig. 2, the neural network structure information is expressed as a table of parameters for layers in the neural network. Layers include intermediate layers (hidden layers). In the case of CNN, there are convolutional layers.

[0026] In FIG. 2, ID is assigned a value for uniquely identifying a layer. Type represents the type of layer. FIG. 2 shows Conv as an example of a layer type. Conv represents a convolutional layer. Other examples of layer types include Mult, which represents element-wise multiplication, Add, which represents element-wise addition, and MaxPool, which represents maximum pooling.

[0027] IW and IH represent the spatial size (width and height) of the layer. IC represents the number of input channels. OC represents the number of output channels. KS represents the kernel size. For example, a layer with Type=Conv and KS=3 represents a 3x3 convolutional layer. A layer with KS=1 represents a 1x1 convolutional layer.

[0028] ST represents the stride number. The stride number is the interval at which the calculation is applied. For example, a stride number of 1 indicates that the kernels are applied while shifting every other kernel. A stride number of 2 indicates that the kernels are applied while shifting every other kernel.

[0029] GR represents the number of groups in Grouped Convolution. A layer with Type=Conv, GR=1 represents a convolutional layer. A layer with Type=Conv, OC=32, GR=32 represents a depthwise convolutional layer.

[0030] The above-mentioned symbols have the same meanings in FIGS.

[0031] Note that the parameters shown in Figure 2 are just an example. Parameters may be added or removed depending on the structure of the target neural network. For example, to support kernel sizes other than squares, it may be possible to specify the kernel size in each of the x and y directions, and the stride number in each of the x and y directions.

[0032] 3 is an explanatory diagram showing an example of target device characteristic information, which includes execution times of various layers in the target device.

[0033] For example, the first line in FIG. 3 illustrates that the execution time in the target device for a layer with Type=Conv, IW=IH=224, IC=3, OC=16, KS=3, ST=2, and GR=1 is 0.4. The unit of the execution time is, for example, milliseconds. However, the unit of the execution time does not have to be milliseconds. Also, although the execution time is expressed as a decimal in FIG. 3, it may be expressed as an integer.

[0034] When the target device is changed, the contents of the target device characteristic information are replaced in advance in the target device characteristic information storage unit 40 .

[0035] Furthermore, the execution times for all parameter combinations do not necessarily need to be stored in the target device property information storage unit 40. This is because the computation efficiency analysis unit 20 can obtain the execution times by interpolation, as described later.

[0036] Fig. 4 is an explanatory diagram showing an example of the computation efficiency information. The computation efficiency information is information in which an execution time estimate (hereinafter, referred to as an execution time estimate) and computation efficiency are added to the input neural network structure information (see Fig. 2). The execution time estimate means an estimated execution time.

[0037] The execution time estimate is calculated by the computation efficiency analysis unit 20. Specifically, the computation efficiency analysis unit 20 calculates the execution time estimate for each layer included in the input neural network structure information by referring to the corresponding execution time in the target device characteristic information. If the desired parameter combination exists in the target device characteristic information storage unit 40, the computation efficiency analysis unit 20 uses the corresponding execution time as the execution time estimate. If the desired parameter combination does not exist, the computation efficiency analysis unit 20 calculates the execution time estimate by interpolation based on a similar parameter combination.

[0038] For example, assume that the execution time for OC=24 is required, but the target device characteristic information only includes execution time X for OC=16 and execution time Y for OC=32. In this case, the computation efficiency analysis unit 20 can calculate the execution time estimate for OC=24 by linear interpolation of X+(YX)*24 / (32-16).

[0039] Depending on the type of parameter or the characteristics of the device, the computation efficiency analysis unit 20 may perform quadratic interpolation instead of linear interpolation. The interpolation method according to the parameter or the device is set in advance in the computation efficiency analysis unit 20, for example.

[0040] The computation efficiency analysis unit 20 calculates the computation efficiency of each layer using the amount of calculation calculated from the layer parameters included in the input neural network structure information and the execution time estimate of the layer. That is, the computation efficiency is calculated by the following formula (1).

[0041] Computational efficiency = computational complexity / execution time estimate (1) In the following description and in FIG. 4, the value of the calculation efficiency is shown as a value calculated by equation (1) divided by 1,000,000.

[0042] The higher the computational efficiency value, the more calculations can be performed per unit time, i.e. the higher the computational efficiency value, the more efficient it is.

[0043] The amount of calculation can be easily calculated from the parameters of the layer. For example, the computation efficiency analysis unit 20 may calculate the amount of calculation of the convolution layer (Type=Conv) using the following formula (2).

[0044] Computation amount=2*IW*IH*IC*OC*KS*KS / ST / ST / GR (2)

[0045] Note that one multiply-and-accumulate operation required in a convolutional layer is counted as two operations (an addition and a multiplication). Therefore, the right-hand side of equation (2) has a "2*" at the beginning.

[0046] FIG. 5 is an explanatory diagram showing an example of layer replacement candidate information. The layer replacement candidate information is expressed as a set of a replacement condition consisting of a condition for one or more parameters, and replacement parameter information indicating the changed parameters. The layer structure replacement unit 30 attempts replacement for each layer in the computation efficiency information in an order to be described later. The replacement means replacing the parameter indicated in the corresponding replacement parameter information when the replacement condition included in the layer replacement candidate information is satisfied.

[0047] For example, the replacement condition in the first line in FIG. 5 is that Type is Conv, IC and OC are 32, KS is 1, and ST is 1. In FIG. 5, "*" indicates that any value matches. In the first line in FIG. 5, IW, IH, and GR are *. This means that this condition is satisfied for any value of IW, IH, and GR. And, the first line in FIG. 5 indicates that when this replacement case is satisfied, the layer structure replacement unit 30 sets the parameter GR to 2.

[0048] Also, in FIG. 5, the notation [A:B] indicates any value between A and B. For example, the replacement condition illustrated in the third line in FIG. 5 is satisfied when IW and IH are each a value between 17 and 31. At this time, it indicates that the layer structure replacement unit 30 sets IW and IH to 32. The replacement condition illustrated in the fourth line in FIG. 5 is satisfied when IW and IH are each a value between 33 and 63. At this time, it indicates that the layer structure replacement unit 30 sets IW and IH to 64.

[0049] Note that the above example is based on a round-up operation. However, the layer replacement candidate information may be expressed in other forms. For example, it is conceivable that more complex conditions can be expressed by expressing them as conditional statements in a programming language such as C or Python (registered trademark).

[0050] Next, a description will be given of the order in which the layer structure replacement unit 30 performs layer replacement. For example, the layer structure replacement unit 30 attempts to replace layers in the computation efficiency information in order from the layer with the largest execution time estimate and the lowest computation efficiency.

[0051] Specifically, the layer structure replacement unit 30 checks the computation efficiency of layers in ascending order of execution time estimate. For layers whose computation efficiency is equal to or less than a threshold, the layer structure replacement unit 30 attempts to replace the layers using layer replacement candidate information. The threshold is set in advance. For example, a preferable value is set to 15.0. The threshold may also be gradually increased from a low value.

[0052] As an example, the operation when the threshold is set to 15.0 will be described. In FIG. 4, the layer with the largest execution time estimate is the layer with ID=1 (layer 1). The computation efficiency of layer 1 is 3.4. In other words, the computation efficiency is equal to or less than the threshold of 15.0. Therefore, the layer structure replacement unit 30 attempts to replace the layer. This layer meets the replacement condition shown in the first row in FIG. 5. The layer structure replacement unit 30 replaces this layer with a layer with a parameter GR of 2.

[0053] The layer with the next largest execution time estimate is the layer with layer ID=3 (layer 3). The computation efficiency of layer 3 is 21.4. That is, the computation efficiency exceeds the threshold value. Therefore, the layer structure replacement unit 30 does not perform layer replacement.

[0054] The layer with the next largest execution time estimate is the layer with layer ID=4 (layer 4). The computation efficiency of layer 4 is 3.2. That is, the computation efficiency is below the threshold value. Therefore, the layer structure replacement unit 30 attempts to replace the layer. However, since there is no applicable replacement condition in the example shown in FIG. 5, the layer structure replacement unit 30 does not actually replace the layer.

[0055] In this way, the layer structure replacement unit 30 evaluates the computation efficiency in order from the layer with the largest execution time estimate and attempts to replace the layers. However, there are cases where the layer is not replaced even if its computation efficiency is equal to or less than the threshold, such as the layer with layer ID=4.

[0056] The layer structure replacement unit 30 may evaluate only layers whose execution time estimates are equal to or greater than a certain threshold, rather than evaluating all layers. This is because for layers whose execution time estimates are quite small, even if replacement of the layers is performed, the effect on the execution speed of the entire neural network is negligible. For example, it is conceivable to set the threshold value to 1% of the sum of the execution time estimates of all layers.

[0057] In the above description, the number of layers before and after the replacement is 1, but is not limited to this. For example, the layer structure replacement unit 30 may replace one layer with multiple layers, or multiple layers with one layer. For example, three layers consisting of 1x1 convolution, 3x3 convolution, and 1x1 convolution known as Depthwise-Separable Convolution may be replaced with normal 3x3 convolution, or vice versa. This example is a layer replacement that is effective for devices that are not good at Depthwise-Separable Convolution.

[0058] Furthermore, the layer replacement candidate information may include information that results in a plurality of replacement conditions being satisfied for a certain layer. In such a case, the layer structure replacement unit 30 generally selects a replacement that increases the computation efficiency of the layer after the replacement. However, the layer structure replacement unit 30 may make a selection other than the above. For example, the layer structure replacement unit 30 may select a replacement that reduces the execution time estimate even if it reduces the computation efficiency. The computation efficiency of the layer after the replacement can be obtained from the target device characteristic information.

[0059] In addition, in order to maintain the expected recognition accuracy as much as possible, when replacing a layer, the similarity with the structure of the layer before replacement may be evaluated, and replacement may be performed to obtain a structure with high similarity. As an example, when there are replacement conditions for a layer with a group number GR of 32, which set the number of groups to 16 and replacement conditions for the number of groups to 8, it is possible to select a replacement that sets the number of groups to 16, which causes as little change in the number of groups as possible. In this example, the determination condition for determining that the similarity is high is the condition that the similarity is the highest, but is not limited to this. For example, it may be a condition that exceeds a predetermined threshold value.

[0060] Fig. 6 is an explanatory diagram showing an example of output neural network structure information. Referring to the input neural network structure information shown in Fig. 2, the number of groups GR of the layer with layer ID=1 is replaced from 32 to 2. Referring to Fig. 3, the execution time estimate of the layer with layer ID=1 after the replacement is 1.4. The computation efficiency is 82.6. The computation efficiency is improved from the computation efficiency of 3.4 of the layer with layer ID=1 shown in Fig. 4.

[0061] Next, the operation of the neural network structure proposing device 10 will be described with reference to the flowchart of FIG.

[0062] Neural network structure information is input to the computation efficiency analysis unit 20 (step S11). The computation efficiency analysis unit 20 calculates the amount of calculation from the parameters for each of a plurality of layers of the input neural network having different parameters, for example, by using the above (2) (step S12). The computation efficiency analysis unit 20 calculates an execution time estimate for each of the plurality of layers, using the parameters of each layer included in the input neural network structure information and referring to the corresponding execution time in the target device characteristic information (step S13).

[0063] The computation efficiency analysis unit 20 calculates the computation efficiency from the calculated computation amount and the execution time estimate, for example, by using the above (1) (step S14). The computation efficiency analysis unit 20 supplies the computation efficiency to the layer structure replacement unit 30 (step S15).

[0064] The layer structure replacement unit 30 replaces layers with large execution time estimates and low computational efficiency in the computation efficiency information (see FIG. 4) by referring to layer replacement candidate information (see FIG. 5) (step S21). The layer structure replacement unit 30 outputs the neural network structure information with the replaced layers as output neural network structure information (step S22).

[0065] As described above, in this embodiment, the computation efficiency analysis unit 20 analyzes the structure of a given neural network and estimates the computation efficiency of each layer in the neural network in the target device. The layer structure replacement unit 30 replaces layers with higher computation efficiency, which are prepared in advance, in order from layers with a large amount of computation and low computation efficiency. Then, the layer structure replacement unit 30 outputs the neural network structure replaced with an alternative layer structure (a layer with parameters different from those of the original layer). Therefore, the neural network structure proposal device 10 can output a neural network structure suitable for the target device.

[0066] In this embodiment, a neural network structure suitable for a target device can be obtained, so that in edge devices with limited computing resources, the execution speed can be improved while maintaining the recognition accuracy. As an example, this embodiment can be applied to applications such as increasing the speed of an object detection system using a camera.

[0067] In the above embodiment, the layer structure replacement unit 30 replaced layers based on a rounding up operation. The rounding up operation may be advantageous in terms of execution speed depending on the target device. For example, for a device that is not good at processing layers with a space size that is not a power of two, it may be advantageous in terms of execution speed to round up to a space size that is a power of two even if the space size becomes large. When the space size is increased, equivalent processing can be realized. In addition, it is expected that the recognition accuracy will improve by increasing the space size. However, it may be advantageous to reduce the space size. For example, although there is a possibility that the recognition accuracy will be somewhat deteriorated by reducing the space size, it is also possible to reduce the space size in order to prioritize the improvement of the execution speed.

[0068] As another example, consider the case where the kernel size KS is changed. When the kernel size KS is increased, generally, processing equivalent to that before the kernel size KS was changed can be realized. For example, when changing a 3×3 convolution kernel to a 5×5 convolution kernel, if the weights W0 to W8 of the 3×3 convolution kernel shown in FIG. 8(a) are arranged as the weights of the 5×5 convolution kernel as shown in FIG. 8(b), an equivalent convolution operation is achieved. Also, if the parts in FIG. 7(b) where the weights are 0 are utilized by re-learning, it is expected that the recognition accuracy will improve.

[0069] In addition, if it is desired to avoid deterioration of recognition accuracy, the layer replacement candidate information may be configured so that only logically equivalent conversions are possible, such as changing 3×3 convolution to 5×5 convolution or reducing the number of groups GR.

[0070] Moreover, the output of the neural network structure proposal device 10 is the neural network structure after the change. The output of the neural network structure proposal device 10 does not include trained weights, etc. In other words, when trained weights are already present, the trained weights may be reused as illustrated in FIG. 8. Furthermore, the neural network structure proposal device 10 may re-train after reusing. Furthermore, the neural network structure proposal device 10 may re-train from the beginning using random weights, etc., without using trained weights.

[0071] In the above embodiment, it is assumed that the layer structure replacement unit 30 performs replacement to improve the calculation efficiency. However, the replacement is not limited to the replacement to improve the calculation efficiency. For example, the layer replacement candidate information storage unit 50 may store layer replacement candidate information that emphasizes energy efficiency. Also, the layer replacement candidate information storage unit 50 may store layer replacement candidate information that emphasizes recognition accuracy.

[0072] The neural network structure proposal device 10 of the above embodiment can be configured with hardware, but can also be realized with a computer program. Also, some of the components in each of the above embodiments can be configured with hardware, and the other parts can be configured with software.

[0073] Fig. 9 is a block diagram showing a configuration example of an information processing device capable of realizing the functions of a neural network structure proposing device. The information processing device shown in Fig. 9 includes one or more processors such as CPUs (Central Processing Units), a program memory 1002, and a memory 1003. Fig. 9 shows an information processing device having one processor 1001 as an example.

[0074] The program memory 1002 is, for example, a non-transitory computer readable medium. The non-transitory computer readable medium includes various types of tangible storage media. For example, a semiconductor storage medium such as a flash ROM (Read Only Memory) or a magnetic storage medium such as a hard disk can be used as the program memory 1002. The program memory 1002 stores a neural network structure proposal program for realizing the functions of each block (the computational efficiency analysis unit 20, the layer structure replacement unit 30) in the neural network structure proposal device 10 of the above embodiment.

[0075] Processor 1001 executes processing in accordance with a neural network structure proposal program stored in program memory 1002, thereby realizing the functions of neural network structure proposal device 10. When multiple processors are installed, the multiple processors can also work together to realize the functions of neural network structure proposal device 10.

[0076] A transitory computer readable medium such as a random access memory (RAM) can be used as the memory 1003. The memory 1003 stores temporary data and the like that are generated when the neural network structure proposal device 10 is executing a process.

[0077] It is also possible to assume that the neural network structure proposal program is stored in a temporary computer-readable medium. In that case, the neural network structure proposal program is transferred to, for example, the memory 1003 via a wired communication path or a wireless communication path, that is, via an electrical signal, an optical signal, or an electromagnetic wave. Then, the processor 1001 executes processing based on the neural network structure proposal program in the memory 1003.

[0078] The program memory 1002 and the memory 1003 may be integrated together. The target device characteristic information storage unit 40 and the layer replacement candidate information storage unit 50 shown in FIG.

[0079] Fig. 10 is a block diagram showing the main parts of a neural network structure proposing device. The neural network structure proposing device 1 shown in Fig. 10 includes a computation efficiency analyzing means 2 (realized by a computation efficiency analyzing unit 20 in the embodiment) that calculates the execution time estimate of a layer and computation efficiency corresponding to the amount of calculation per unit time for each of a plurality of layers (e.g., layers ID0 to ID4 shown in Fig. 2) of a neural network that are layers of the neural network and have different parameters, in a target device, and a layer structure replacing means 3 (realized by a layer structure replacing unit 30 in the embodiment) that replaces a layer with a large execution time estimate and low computation efficiency with another layer (e.g., a layer with a different parameter from the original layer) and outputs neural network structure information indicating the structure of the neural network.

[0080] The layer structure replacement means 3 may be configured to attempt replacement for layers whose computation efficiency is equal to or less than a threshold value, in descending order of the estimated execution time.

[0081] The computing efficiency analysis means 2 may be configured to include a first storage means (e.g., a target device characteristic information storage unit 40) for storing target device characteristic information including information indicating at least the execution time of each layer in the target device, and to calculate an execution time estimate by referring to the execution time in the target device characteristic information.

[0082] The layer structure replacement means 3 may be configured to include a second storage means (e.g., a layer replacement candidate information storage unit 50) that stores layer replacement candidate information represented by a set of pairs of replacement conditions consisting of conditions for one or more parameters and replacement parameter information representing the changed parameters, and the layer structure replacement means 3 may be configured to replace layers by referring to the layer replacement candidate information.

[0083] Some or all of the above embodiments may be described as follows, but are not limited to the following:

[0084] (Supplementary Note 1) A computation efficiency analysis means for calculating an estimated execution time of a layer and a computation efficiency corresponding to a calculation amount per unit time for each of a plurality of layers of a neural network having different parameters in a target device; a layer structure replacing means for replacing the layer having a large estimated execution time and a low computation efficiency with another layer, and outputting neural network structure information indicating a structure of the neural network; A neural network structure proposal device comprising:

[0085] (Note 2) The layer structure replacement means attempts replacement for layers whose computation efficiency is equal to or less than a threshold value in descending order of the execution time estimate. Appendix 1 Neural network structure proposal device.

[0086] (Note 3) The computation efficiency analysis means calculates the execution time estimate and computation efficiency based on the input neural network structure information. 10. The neural network structure proposal device of appendix 1 or appendix 2.

[0087] (Additional Note 4) A first storage means for storing target device characteristic information including information indicating at least an execution time of each layer in a target device, The computation efficiency analysis means calculates the execution time estimate by referring to the execution time in the target device characteristic information. 4. The neural network structure proposal device according to any one of appendix 1 to appendix 3.

[0088] (Appendix 5) A second storage means is provided for storing layer replacement candidate information represented by a set of a replacement condition consisting of a condition for one or more parameters and replacement parameter information representing a changed parameter; The layer structure replacing means replaces layers by referring to the layer replacement candidate information. 5. The neural network structure proposal device according to any one of appendix 1 to appendix 4.

[0089] (Additional Note 6) The layer structure replacement means replaces a layer in the neural network with a layer such that a similarity between a structure of the layer before replacement and a structure of the layer after replacement when replacement is performed satisfies a predetermined judgment condition. 6. The neural network structure proposal device according to any one of appendix 1 to appendix 5.

[0090] (Appendix 7) For each of a plurality of layers of a neural network having different parameters, an estimated execution time of the layer on a target device and a computational efficiency corresponding to the amount of calculation per unit time are calculated; The layer having a large estimated execution time and a low computation efficiency is replaced with another layer, and neural network structure information indicating the structure of the neural network is output. A method for proposing neural network structures.

[0091] (Appendix 8) Attempt replacement for layers whose computation efficiency is equal to or less than a threshold value, in descending order of the estimated execution time. The neural network structure proposal method in Appendix 7.

[0092] (Supplementary Note 9) The execution time estimate is calculated by referring to the execution time in the target device characteristic information stored in a first storage means that stores target device characteristic information including information indicating at least the execution time of each layer in the target device. The neural network structure proposal method of Supplementary Note 7 or Supplementary Note 8.

[0093] (Appendix 10) The layer replacement candidate information stored in a second storage means stores layer replacement candidate information represented by a set of a replacement condition consisting of a condition for one or more parameters and replacement parameter information representing a changed parameter, and the layer replacement is performed by referring to the layer replacement candidate information stored in the second storage means. The neural network structure proposing method according to any one of Supplementary Note 7 to Supplementary Note 9.

[0094] (Appendix 11) To the computer, Calculating an estimated execution time of a layer and a computation efficiency corresponding to a computation amount per unit time in a target device for each of a plurality of layers of a neural network having different parameters; The layer having a large estimated execution time and a low computation efficiency is replaced with another layer, and neural network structure information indicating a structure of the neural network is output. A neural network structure suggestion program for

[0095] (Appendix 12) To the computer, A process of attempting replacement is executed for layers whose computation efficiency is equal to or less than a threshold value in descending order of the estimated execution time. Appendix 11 Neural network structure proposal program.

[0096] (Appendix 13) To the computer, Calculating an estimated execution time of a layer and a computation efficiency corresponding to a computation amount per unit time in a target device for each of a plurality of layers of a neural network having different parameters; The layer having a large estimated execution time and a low computation efficiency is replaced with another layer, and neural network structure information indicating a structure of the neural network is output. A computer-readable recording medium having a neural network structure proposing program recorded thereon.

[0097] (Appendix 14) To the computer, a neural network structure suggestion program for executing a process of trying to replace layers whose computation efficiency is equal to or less than a threshold value in descending order of the estimated execution time amount; 14. The computer-readable storage medium of claim 13 having recorded thereon. [Explanation of symbols]

[0098] 1,10 Neural network structure proposal device 2. Computational Efficiency Analysis Methods 3. Layer structure replacement method 20 Computational Efficiency Analysis Unit 30 Layer structure replacement section 40 Target device characteristic information storage unit 50 Layer replacement candidate information storage unit 1001 Processor 1002 Program Memory 1003 Memory

Claims

1. a computation efficiency analysis means for calculating an estimated execution time of a layer and a computation efficiency corresponding to a calculation amount per unit time for each of a plurality of layers of a neural network having different parameters in a target device; a layer structure replacing means for replacing the layer having a large estimated execution time and a low computation efficiency with another layer, and outputting neural network structure information indicating a structure of the neural network; A neural network structure proposal device comprising:

2. The layer structure replacement means attempts replacement for layers whose computation efficiency is equal to or less than a threshold value in descending order of the execution time estimate.

2. The neural network structure proposing device according to claim 1.

3. The computation efficiency analysis means calculates the execution time estimate and computation efficiency based on the input neural network structure information.

3. The neural network structure proposing device according to claim 1 or 2.

4. a first storage means for storing target device characteristic information including information indicating at least an execution time of each layer in a target device; The computation efficiency analysis means calculates the execution time estimate by referring to the execution time in the target device characteristic information.

3. The neural network structure proposing device according to claim 1 or 2.

5. a second storage means for storing layer replacement candidate information represented by a set of a replacement condition composed of a condition for one or more parameters and replacement parameter information representing a changed parameter; The layer structure replacing means replaces layers by referring to the layer replacement candidate information.

5. The neural network structure proposing device according to claim 4.

6. The layer structure replacement means replaces a layer in the neural network with a layer such that a similarity between a structure of the layer before replacement and a structure of the layer after replacement when replacement is performed satisfies a predetermined judgment condition.

3. The neural network structure proposing device according to claim 1 or 2.

7. The computer Calculating an estimated execution time of the layer and a computation efficiency corresponding to a computation amount per unit time on a target device for each of a plurality of layers of the neural network having different parameters; The layer having a large estimated execution time and a low computation efficiency is replaced with another layer, and neural network structure information indicating the structure of the neural network is output. A method for proposing neural network structures.

8. The computer Attempts replacement for layers whose computation efficiency is equal to or less than a threshold value, in descending order of the estimated execution time. The method for proposing a neural network structure according to claim 7.

9. On the computer, Calculating an estimated execution time of a layer and a computation efficiency corresponding to a computation amount per unit time in a target device for each of a plurality of layers of a neural network having different parameters; The layer having a large estimated execution time and a low computation efficiency is replaced with another layer, and neural network structure information indicating a structure of the neural network is output. A neural network structure suggestion program for

10. On the computer, A process of attempting replacement is executed for layers whose computation efficiency is equal to or less than a threshold value in descending order of the estimated execution time.

10. The neural network structure proposing program according to claim 9.