Devices and methods for managing applications

By comparing and identifying the neural networks of applications on the device, identifying and storing common neural networks, the problem of wasted storage devices is solved, and more efficient storage management is achieved.

CN122309063APending Publication Date: 2026-06-30SAMSUNG ELECTRONICS CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SAMSUNG ELECTRONICS CO LTD
Filing Date
2019-11-19
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

As the types and number of applications on mobile devices increase, storage capacity on storage devices is being wasted unnecessarily because each application is installed and stored separately, lacking an effective sharing mechanism.

Method used

By comparing the neural networks of the applications installed on the device, a structurally corresponding common neural network is identified and stored in memory. When the application is executed, the common neural network is loaded to process the data.

Benefits of technology

It reduces the size of application data stored on the device, optimizes the efficiency of storage device usage, and reduces the load on the main storage device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122309063A_ABST
    Figure CN122309063A_ABST
Patent Text Reader

Abstract

Apparatus and methods for managing applications are provided. An apparatus is provided configured to determine a common neural network based on a comparison between a first neural network included in a first application and a second neural network included in a second application, utilizing the common neural network when either the first or second application is executed.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of Chinese invention patent No. 201980087539.6, filed on November 19, 2019, entitled "Apparatus and Method for Managing Applications". Technical Field

[0002] This disclosure relates to the field of data management. More specifically, this disclosure relates to apparatus and methods for managing the storage, execution, etc., of applications in a device, wherein various types of applications are installed on said device. Background Technology

[0003] With the development of mobile devices such as smartphones, the types of applications have grown exponentially. Users can install a wide variety of applications on their smartphones to provide various corresponding services.

[0004] When many applications are installed on a device, they can consume storage capacity on both the device's secondary and primary storage devices. While common modules for providing similar functionality can exist within applications that provide different services, having all applications installed and stored separately on the device can unnecessarily waste storage capacity on both the secondary and primary storage devices. Summary of the Invention

[0005] Technical issues

[0006] According to embodiments of this disclosure, the purpose of the apparatus and method for managing applications is to reduce the data size of applications stored in the device.

[0007] Furthermore, according to embodiments of this disclosure, the purpose of the apparatus and method for managing applications is to reduce the size of the data loaded into the main storage device to execute the applications.

[0008] Additional aspects will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practicing the embodiments presented in this disclosure.

[0009] Technical solutions

[0010] According to embodiments of the present disclosure, an apparatus (including a memory and a central processing unit) for managing applications is provided, the central processing unit being configured to: compare a first neural network of a first application installed on the apparatus with a second neural network of a second application installed on the apparatus; determine a common neural network structurally corresponding to the first neural network and the second neural network based on the result of the comparison of the first neural network and the second neural network; store the common neural network in the memory; and load the common neural network and process data of the first application or the second application using the common neural network when the first application or the second application is executed. Attached Figure Description

[0011] A brief description of each figure is provided to provide a more complete understanding of the figures referenced in this specification.

[0012] The above and other aspects, features, and advantages of certain embodiments of the present disclosure will become more apparent from the following description taken in conjunction with the accompanying drawings, wherein:

[0013] Figure 1 This is a block diagram illustrating the configuration of an apparatus for managing applications according to an embodiment of the present disclosure;

[0014] Figure 2 This is a block diagram showing the files that make up an application stored on a secondary storage device;

[0015] Figure 3 This is a flowchart describing a method for managing an application according to embodiments of the present disclosure;

[0016] Figure 4 This is a schematic diagram illustrating a method for determining whether the first neural network and the second neural network are structurally corresponding to each other;

[0017] Figure 5 This is a schematic diagram illustrating a method for determining whether the first neural network and the second neural network are structurally corresponding to each other;

[0018] Figure 6 This is a schematic diagram illustrating a method for determining whether the first neural network and the second neural network are structurally corresponding to each other;

[0019] Figure 7 This is a schematic diagram illustrating a method for determining whether the first neural network and the second neural network are structurally corresponding to each other;

[0020] Figure 8 This is a schematic diagram illustrating a method for determining whether the first neural network and the second neural network are structurally corresponding to each other;

[0021] Figure 9This is a schematic diagram illustrating a method for determining whether the first neural network and the second neural network are structurally corresponding to each other;

[0022] Figure 10 This is a schematic diagram illustrating a method for determining whether the first neural network and the second neural network are structurally corresponding to each other;

[0023] Figure 11 This is a flowchart describing a method for storing the second internal parameters of a second neural network;

[0024] Figure 12 This is a flowchart describing a method for storing the second internal parameters of a second neural network;

[0025] Figure 13 This is a schematic diagram illustrating a method for obtaining information about the difference between common parameters and second intrinsic parameters;

[0026] Figure 14 This is a schematic diagram illustrating a method for obtaining information about the difference between common parameters and second intrinsic parameters;

[0027] Figure 15 This is a flowchart describing the method for updating the first application;

[0028] Figure 16 This is a flowchart describing the method for updating the first application;

[0029] Figure 17 This is a block diagram illustrating the common neural network, common parameters, neural network obtained based on the update file, and internal parameters obtained based on the update file, related to the method of updating the first application; and

[0030] Figure 18 This is a flowchart illustrating a method for managing an application according to another embodiment of the present disclosure. Detailed Implementation

[0031] According to embodiments of the present disclosure, an apparatus for managing applications is provided, including a memory and a central processing unit configured to: compare a first neural network of a first application installed on the apparatus with a second neural network of a second application installed on the apparatus; determine a common neural network structurally corresponding to the first and second neural networks based on the result of the comparison; store the common neural network in the memory; and load the common neural network and process data of the first or second application when the first or second application is executed.

[0032] The device may also include an auxiliary storage device that stores a first file constituting a first application, a second file constituting a second application, and one or more files corresponding to a public neural network.

[0033] The central processing unit can also be configured to: use a common neural network to generate mapping information indicating a first application and a second application, and store the mapping information in an auxiliary storage device.

[0034] The central processing unit can also be configured to: obtain first structural information of a first neural network from a first metafile included in a first application; obtain second structural information of a second neural network from a second metafile included in a second application; and determine a common neural network by comparing the first structural information of the first neural network with the second structural information of the second neural network.

[0035] The first structural information may include a first connection relationship between a first layer of a first type contained in the first neural network and between the first layers, and the second structural information may include a second connection relationship between a second layer of a second type contained in the second neural network and between the second layers.

[0036] The first structural information may include the first size of the first input data and the first output data contained in the first layer of the first neural network, and the second structural information may include the second size of the second input data and the second output data contained in the second layer of the second neural network.

[0037] The first structural information may include a first number of nodes in each layer of the first fully connected layer of the first neural network, and the second structural information may include a second number of nodes in each layer of the second fully connected layer of the second neural network.

[0038] The first structural information may include a first convolutional layer of a first neural network and a first number of first filter kernels, a first size of the first filter kernels of the first neural network, and a first step length of the first convolutional layer of the first neural network. The second structural information may include a second convolutional layer of a second neural network and a second number of second filter kernels, a second size of the second filter kernels of the second neural network, and a second step length of the second convolutional layer of the second neural network.

[0039] The first structural information may include the first size of the first pooling layer and the first filter kernel of the first neural network, and the first step length of the first pooling layer of the first neural network; and the second structural information may include the second size of the second pooling layer and the second filter kernel of the second neural network, and the second step length of the second pooling layer of the second neural network.

[0040] The central processing unit can also be configured to: store first internal parameters used for processing input data in the first neural network as common parameters in an auxiliary storage device; determine that the common parameters are different from second internal parameters used for processing input data in the second neural network; determine the difference information between the common parameters and the second internal parameters; and store the difference information in the auxiliary storage device.

[0041] The central processing unit can also be configured to recover a second internal parameter, determine at least one of the following: a residual parameter added to a common parameter, a transformation parameter multiplied by a common parameter, or a selection parameter used to select a portion of the common parameter as difference information.

[0042] The central processing unit can also be configured to: determine multiple difference information between a common parameter and a second internal parameter based on multiple calculation methods; and store the difference information with the smallest data size among the multiple difference information in an auxiliary storage device.

[0043] The central processing unit can also be configured to: store first internal parameters used for processing input data in a first neural network as common parameters in an auxiliary storage device; determine that the common parameters are different from second internal parameters used for processing input data in a second neural network; determine difference information between the common parameters and the second internal parameters; and determine whether to store the difference information in the auxiliary storage device based on the result obtained by comparing the magnitude of the difference information with the magnitude of the second internal parameters.

[0044] The central processing unit can also be configured to: recover second intrinsic parameters from common parameters based on difference information when executing an application utilizing a second neural network; and load the second intrinsic parameters into memory.

[0045] The central processing unit may also be configured to: acquire updated data related to a first neural network of a first application; obtain a neural network corresponding to the updated data; determine that the neural network and the common neural network do not correspond to each other structurally; and store the neural network as a separate neural network of the first application in an auxiliary storage device.

[0046] The central processing unit can also be configured to: determine that the neural network and the common neural network correspond to each other in structure, determine that the common parameters and the internal parameters obtained based on the updated data are different, and store the difference information between the common parameters and the internal parameters in an auxiliary storage device.

[0047] The central processing unit can also be configured such that, when the neural network and the common neural network are structurally related, the neural network is not stored in the auxiliary storage device.

[0048] According to embodiments of the present disclosure, an apparatus for managing applications is provided, including a memory and a central processing unit, the central processing unit being configured to: compare a first layer of a first neural network included in a first application installed on the apparatus and a second layer of a second neural network included in a second application installed on the apparatus; determine a common neural network structurally corresponding to the first neural network and the second neural network based on the result of comparing the first layer of the first neural network and the second layer of the second neural network; store the common neural network in the memory; and when the first application or the second application is executed, load the common neural network and use the common neural network to process data of the first application or the second application.

[0049] According to another embodiment of this disclosure, a method for managing an application executed by a device for managing an application is provided, comprising: comparing a first neural network included in a first application installed on the device and a second neural network included in a second application installed on the device; determining a common neural network that structurally corresponds to the first neural network and the second neural network based on the comparison result; storing the common neural network in a memory; and loading the common neural network and processing data of the first application or the second application when the first application or the second application is executed.

[0050] Invention Model

[0051] Because this disclosure allows for various variations and numerous embodiments, embodiments of this disclosure will be illustrated in the accompanying drawings and described in detail in the written description. However, this is not intended to limit this disclosure to a particular mode of practice, and it should be understood that all variations, equivalents, and alternatives without departing from the spirit and scope of this disclosure are included herein.

[0052] In the description of embodiments of this disclosure, detailed explanations of related technologies are omitted when they are deemed to unnecessarily obscure the essence of this disclosure. Similarly, the numbers used in the description of embodiments of this disclosure (e.g., first and second) are intended to distinguish one component from another only.

[0053] When a component is referred to as being "connected" to or "accessed" by any other component, it should be understood that the component can be directly connected to or accessed by other components, but another new component can also be inserted between them, unless otherwise specifically indicated.

[0054] Regarding elements with suffixes such as "unit" or "module," two or more elements can be combined into one element, or one element can be divided into two or more elements based on function. Furthermore, in addition to the main functions each component is responsible for, each of the components described below can additionally perform some or all of the functions of the other components, and some of the main functions of each component can be specifically performed by other components.

[0055] Throughout the disclosure, the expression "at least one of a, b, or c" means: only a, only b, only c; a and b, a and c, b and c; all of a, b, and c; or variations thereof.

[0056] Additionally, in the specification, when it says "store A (e.g., a file, neural network, or internal parameters) in the secondary storage device," this could mean that A, which was not already stored in the secondary storage device, is newly stored in the secondary storage device, or it could mean that A is retained in the state where it was already stored in the secondary storage device. Furthermore, when it says "A is not stored in the secondary storage device," this could mean that A, which was not already stored in the secondary storage device, was not stored in the secondary storage device, or it could mean that A, which was already stored in the secondary storage device, is removed from the secondary storage device.

[0057] Furthermore, the term "application" as used herein refers to a program designed to perform a specific function and can include any of various types of programs installed on computers, smartphones, etc. Examples of "applications" can include smartphone applications, personal computer (PC) applications, set-top box (STB) applications, web applications, instant applications, and vehicle applications.

[0058] Embodiments of this disclosure will now be described in detail.

[0059] Figure 1 This is a block diagram illustrating the configuration of an apparatus 100 for managing applications according to an embodiment of the present disclosure.

[0060] Device 100 can be any of a variety of devices. For example, device 100 can be any of a variety of devices used to install and execute applications, such as a desktop PC, laptop, tablet PC, smartphone, wearable device, navigation device, vehicle, or TV.

[0061] refer to Figure 1 The device 100 may include an auxiliary storage device 110, a main storage device 130, and a central processing device 150.

[0062] Auxiliary storage device 110 stores at least one application 140. Examples of the limited capacity of the auxiliary storage device 110, used to supplement the primary storage device 130, may include, but are not limited to, hard disk drives (HDDs), solid-state drives (SSDs), universal serial bus (USB), floppy disks, magnetic tapes, and optical discs (e.g., optical discs (CDs), digital versatile optical discs (DVDs), or Blu-ray discs). The application 140 stored in the auxiliary storage device 110 may include a program designed to implement artificial intelligence (AI) technology. The application 140 may include a neural network and internal parameters, which can process data input to the neural network according to the internal parameters and output processing results.

[0063] Under the control of the central processing unit 150, the main storage device 130 loads the data required to execute the application 140. Examples of the main storage device 130 may include, but are not limited to, read-only memory (ROM), masked ROM, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), random access memory (RAM), dynamic random access memory (DRAM), and static random access memory (SRAM).

[0064] Central processing device 150 controls the operation of secondary storage device 110 and primary storage device 130. Central processing device 150 may include at least one of a central processing unit (CPU), a graphics processing unit (GPU), or an artificial intelligence (AI) processor.

[0065] Central processing device 150 can determine a common neural network and common parameters from applications installed on secondary storage device 110, obtain difference information between internal parameters, and store this difference information in secondary storage device 110. Furthermore, central processing device 150 can reduce the size of applications stored in secondary storage device 110 by not storing some of the files constituting the application in secondary storage device 110. Additionally, central processing device 150 can reduce the size of data loaded into main storage device 130 by loading a common neural network and common parameters shared by multiple applications into main storage device 130.

[0066] Figure 2 This is a block diagram illustrating the files constituting an application 140 stored in secondary storage device 110, and the application 140 includes multiple files. The files may include various types of files required to execute the application 140, such as executable files, source files, binary files, database files, image files, and video files. The apparatus 100 according to this disclosure can optimize the storage capacity of secondary storage device 110 and primary storage device 130 by using the application 140, which includes a neural network file 145.

[0067] Neural network file 145 is a file for implementing a neural network for machine learning. The neural network includes at least one layer, receives input data, processes the input data according to internal parameters, and then provides output data as the result of the processing. When storing the neural network, the neural network file, as the file implementing the neural network, is stored in memory, and when removing the neural network, the neural network file, as the file implementing the neural network, is removed from memory.

[0068] Neural networks can be used to implement AI technologies. As applications employing AI technologies are used, their recognition rates improve, and they more accurately understand user preferences. Therefore, rule-based intelligent systems can be replaced by deep learning-based AI programs.

[0069] AI technology includes machine learning (e.g., deep learning) and elemental technologies that use machine learning. Machine learning is an algorithmic technique that self-classifies and learns from the features of input data, while elemental technologies are techniques that use machine learning algorithms (such as deep learning) to simulate human brain functions (such as recognition and decision-making), and include technical fields such as language understanding, visual understanding, reasoning / prediction, knowledge representation, and motion control.

[0070] The various fields where AI technology is applied are as follows: Language understanding is a technology used to recognize and apply / process human language / characters, and includes natural language processing, machine translation, dialogue systems, question answering, and speech recognition / synthesis. Visual understanding is a technology used to recognize and process objects in a manner similar to the human visual system, and includes object recognition, object tracking, image search, person recognition, scene understanding, spatial understanding, and image enhancement. Reasoning / prediction is a technology used to judge information and perform logical reasoning and prediction, and includes knowledge-based / probability-based reasoning, optimized prediction, preference-based planning, and recommendation. Knowledge representation is an automated technology that incorporates human experience information into knowledge data, and includes knowledge construction (e.g., data generation / classification) and knowledge management (e.g., data utilization). Motion control is a technology used to control the movement of autonomous vehicles and robots, and includes motion control (e.g., navigation, collision avoidance, or driving) and manipulation control (e.g., behavior control).

[0071] exist Figure 2 In this context, application 140 may include a metafile 146, which may include information related to the neural network. For example, metafile 146 may include information about the type, operation method, etc., of at least one layer constituting the neural network. As described below, central processing device 150 can determine whether to extract a common neural network by using the metafile.

[0072] Internal parameters, which are values ​​used in operations at each layer of at least one layer constituting a neural network, may include, for example, weight values ​​for applying input values ​​to arithmetic operations and / or mapping values ​​between input and output values ​​(e.g., an embedding matrix for word embeddings). Furthermore, internal parameters may include a weight matrix and / or a mapping value matrix. Internal parameters are values ​​to be trained, and the neural network can optimize internal parameters based on training data. In embodiments of this disclosure, internal parameters may be stored in a neural network file 145, or may be included in application 140 as a meta-file 146 or a separate parameter file.

[0073] Now refer to Figure 3 The method of applying the management device 100 is described in detail.

[0074] In operation S310, the central processing unit 150 determines whether the first neural network of the first application and the second neural network of the second application correspond to each other structurally. When the first neural network and the second neural network correspond to each other structurally, this may mean that the types of layers constituting the neural networks and / or the connection relationships between the layers correspond to each other.

[0075] After the installation file is sent from the application distribution server to device 100, the first application and / or the second application can be installed on device 100 by executing the installation file. Alternatively, after the installation file is sent to device 100 via USB or the like, the first application and / or the second application can be installed on device 100 by executing the installation file.

[0076] You can install the first application first and then install the second application, or you can install the second application first and then install the first application.

[0077] The central processing unit 150 can determine whether the first and second neural networks structurally correspond to each other based on the type and connection relationships of the layers constituting the neural network, and will refer to... Figure 4-10 Describe in detail the specific determination method.

[0078] When the first neural network and the second neural network are structurally corresponding to each other in operation S320-YES, in operation S330, the central processing unit 150 may store the files constituting the second application, excluding the second neural network, in the auxiliary storage device 110. The central processing unit 150 may choose not to store the second neural network file constituting the second application in the auxiliary storage device 110. In embodiments of this disclosure, when the second internal parameters of the second neural network are stored in the second neural network file, the second internal parameters are related to a reference... Figure 11 and 12Since the first internal parameters of the first neural network described are different and the storage of the difference information is unnecessary, the central processing device 150 may not store the second neural network file in the auxiliary storage device 110, and may store the second internal parameters stored in the second neural network file as a separate file in the auxiliary storage device 110.

[0079] In operation S340, the central processing unit 150 may store the files constituting the first application in the auxiliary storage device 110, and may store the first neural network as a common neural network in the auxiliary storage device 110.

[0080] Despite Figure 3 Operation S340 is executed after operation S330. This is just an example, and operation S340 and operation S330 can be executed simultaneously, or operation S340 can be executed before operation S330.

[0081] In operation S350, when executing a first application or a second application and requiring the execution of a first neural network or a second neural network, the central processing unit 150 can load a common neural network (i.e., the first neural network) into the main storage device 130, and then execute the first application or the second application to utilize the common neural network. The central processing unit 150 can provide input data to the common neural network loaded into the main storage device 130, and can obtain output data from the common neural network as a result of processing the input data. For example, when executing the first application, the central processing unit 150 can provide input data (e.g., a photo) obtained according to a predetermined function (e.g., a shooting function or a photo selection function) of executing the first application (e.g., a photo-taking application) as input data to the common neural network, and can obtain output data from the common neural network as a result of processing the input data. The central processing unit 150 can use the data output from the common neural network as input data for executing a predetermined function (e.g., a display function) of the first application.

[0082] In embodiments of this disclosure, when the first application is executed, the common neural network is located on the main storage device 130, and then when the first application ends, the central processing device 150 can unload the common neural network from the main storage device 130. However, when the first application ends, but a second application using the common neural network is executing, the central processing device 150 can keep the common neural network loaded into the main storage device 130.

[0083] In embodiments of this disclosure, when a first neural network is stored as a common neural network, and then a third application including a third neural network is installed on device 100, central processing unit 150 can determine whether the common neural network and the third neural network structurally correspond to each other. When the common neural network and the third neural network structurally correspond to each other, central processing unit 150 can store only the files constituting the third application, excluding the third neural network, and can then load the common neural network into main storage device 130 when the third neural network needs to be executed, or can execute the pre-loaded common neural network.

[0084] When the first neural network and the second neural network do not correspond structurally in operation S320-NO, in operation S360, the central processing unit 150 stores the files constituting the first application and the second application in the auxiliary storage device 110. When the first neural network and the second neural network do not correspond structurally, since a common neural network may not be provided, all files constituting the first application and the second application are stored in the auxiliary storage device 110.

[0085] In operation S370, when executing the first application or the second application and needing to execute the first neural network or the second neural network, the central processing device 150 can load the first neural network or the second neural network into the main storage device 130.

[0086] Next, when a third application including the third neural network is installed on device 100, as described above, device 100 can determine whether to extract a common neural network based on the structures of the first and third neural networks, and can also determine whether to extract a common neural network based on the structures of the second and third neural networks. The methods for determining whether to extract a common neural network based on the structures of the first and third neural networks and the methods for determining whether to extract a common neural network based on the structures of the second and third neural networks are described in reference. Figure 3 The descriptions are the same, so I have omitted any further explanation.

[0087] When the first neural network and the third neural network correspond structurally to each other, the first neural network can be identified as a common neural network, and then when the first neural network and / or the third neural network need to be executed, the central processing unit 150 can load the common neural network into the main storage device 130. Alternatively, when the first neural network and the third neural network correspond structurally to each other, the third neural network can be identified as a common neural network. Furthermore, when the first neural network and the third neural network correspond structurally to each other, neural networks that are common to the features and characteristics of the first neural network and the third neural network (such as those indicated by the metafile 146 of the first neural network and the third neural network) can be identified as common neural networks. Furthermore, when the second neural network and the third neural network correspond structurally to each other, the second neural network can be identified as a common neural network, and then when the second neural network and / or the third neural network need to be executed, the central processing unit 150 can load the common neural network into the main storage device 130.

[0088] According to embodiments of this disclosure, when multiple structurally corresponding neural networks exist, one of the neural networks is stored as a common neural network in the secondary storage device 110, and the remaining neural networks are not stored in the secondary storage device 110, thus not reducing the available storage capacity of the secondary storage device 110. Furthermore, in embodiments of this disclosure, when multiple applications including structurally corresponding neural networks are executed simultaneously, because only one common neural network can be loaded into the primary storage device 130, the load on the primary storage device 130 when multiple neural networks are loaded simultaneously can be reduced.

[0089] Now refer to Figure 4-10 The description determines whether neural networks correspond to each other in terms of structure.

[0090] In embodiments of this disclosure, when the types of layers included in the first neural network and the second neural network and the connection relationships between the layers are the same, the central processing device 150 can determine that the first neural network and the second neural network correspond to each other in structure.

[0091] refer to Figure 4 The first neural network 410 may include a convolutional layer 411, a pooling layer 412, a normalization layer 413, an activation layer 414, a first fully connected layer (FCL) 415, and a second FCL 416. Furthermore, the second neural network 430 may include a first convolutional layer 431, a pooling layer 432, a normalization layer 433, a second convolutional layer 434, a first FCL 435, and a second FCL 436.

[0092] The term "convolutional layer" can refer to a layer that uses convolution operations to extract desired features from data, and the term "pooling layer" can refer to a layer used to reduce the spatial resolution of feature maps. Furthermore, the term "normalization layer" can refer to a layer that normalizes the range of input data, and the term "activation layer" can refer to a layer that applies non-linear properties to the output of the previous layer. Additionally, the term "fully connected layer" (FCL) can refer to a layer that includes at least one node, processes the data input to that node, and sends the data to the next layer. Each node included in an FCL can be connected to all nodes included in a previous or subsequent FCL.

[0093] Figure 4 The types and number of layers are merely examples, and the first neural network 410 and the second neural network 430 can include various types and numbers of layers.

[0094] refer to Figure 4 The first layer (i.e., 411 and 431) to the third layer (i.e., 413 and 433), the fifth layer (i.e., 415 and 435), and the sixth layer (i.e., 416 and 436) of the first neural network 410 and the second neural network 430 are of the same type. Because the fourth layer (i.e., 414 and 434), which is both an activation layer and a convolutional layer, are of different types, the central processing device 150 can determine that the first neural network 410 and the second neural network 430 do not correspond to each other structurally. As described below, because the first layer (i.e., 411 and 431) to the third layer (i.e., 413 and 433) of the first neural network 410 and the second neural network 430 are of the same type, the central processing device 150 can determine that the first layer (i.e., 411 and 431) to the third layer (i.e., 413 and 433) is a common neural network, which will refer to... Figure 10 Describe it. Alternatively, since the first layer (i.e., 411 and 431) to the third layer (i.e., 413 and 433), the fifth layer (i.e., 415 and 435), and the sixth layer (i.e., 416 and 436) of the first neural network 410 and the second neural network 430 are of the same type, the central processing device 150 can determine that the first layer (i.e., 411 and 431) to the third layer (i.e., 413 and 433), the fifth layer (i.e., 415 and 435), and the sixth layer (i.e., 416 and 436) are common neural networks.

[0095] In embodiments of this disclosure, when the layers are of the same type, this may mean that the types of operations performed on the input data (e.g., convolution, pooling, and activation operations) are the same, and the specific arithmetic operation methods are also the same. In other words, when two convolutional layers perform the same type of operation but use different arithmetic operation methods, it can be determined that the two neural networks including the two convolutional layers do not correspond to each other. Alternatively, when two convolutional layers perform the same type of operation but use different arithmetic operation methods to obtain the same result, it can be determined that the two neural networks including the two convolutional layers correspond to each other.

[0096] refer to Figure 5 Although the first neural network 510 and the second neural network 530 include convolutional layers 511 and 531, pooling layers 512 and 532, normalization layers 513 and 533, activation layers 514 and 534, first FCLs 515 and 535, and second FCLs 516 and 536, the central processing device 150 can determine that the first neural network 510 and the second neural network 530 do not correspond to each other structurally when the pooling layer 512 of the first neural network 510 performs max pooling and the pooling layer 532 of the second neural network 530 performs average pooling.

[0097] Similarly, refer to Figure 6 Although the first neural network 610 and the second neural network 630 include convolutional layers 611 and 631, pooling layers 612 and 632, normalization layers 613 and 633, activation layers 614 and 634, first FCLs 615 and 635, and second FCLs 616 and 636, the central processing device 150 can determine that the first neural network 610 and the second neural network 630 are not structurally corresponding to each other when the respective arithmetic operation methods of the convolutional layers 611 of the first neural network 610 and the convolutional layers 631 of the second neural network 630 are different from each other.

[0098] For example, refer to Figure 7 When the convolutional layer 611 of the first neural network 610 is a general convolutional layer that performs convolution on a predetermined number of adjacent pixel values ​​in the input data 715 using a filter kernel 713, and the convolutional layer 631 of the second neural network 630 is a dilated convolutional layer that performs convolution on a predetermined number of spaced-apart pixel values ​​in the input data 725, the central processing device 150 can determine that the first neural network 610 and the second neural network 630 do not correspond to each other structurally.

[0099] Similarly, refer to Figure 8Although the first neural network 810 and the second neural network 830 include convolutional layers 811 and 831, pooling layers 812 and 832, normalization layers 813 and 833, activation layers 814 and 834, first FCLs 815 and 835, and second FCLs 816 and 836, when the normalization layer 813 of the first neural network 810 performs a batch normalization operation and the normalization layer 833 of the second neural network 830 performs a layer normalization operation, the central processing device 150 can determine that the first neural network 810 and the second neural network 830 do not correspond to each other in structure.

[0100] In embodiments of this disclosure, when the connection relationships between layers included in the first neural network and the second neural network are the same, the central processing device 150 can determine that the first neural network and the second neural network are structurally corresponding to each other.

[0101] refer to Figure 9 When the first neural network 910 and the second neural network 930 include first convolutional layers 911 and 931, second convolutional layers 912 and 932, and third convolutional layers 913 and 933, because the first neural network 910 has a skip connection structure, in which the output of the first convolutional layer 911 is simultaneously input to the second convolutional layer 912 and the third convolutional layer 913, while the second neural network 930 has a structure in which the output of the first convolutional layer 931 is only input to the second convolutional layer 932, the central processing device 150 can determine that the first neural network 910 and the second neural network 930 do not correspond to each other in structure.

[0102] In embodiments of this disclosure, when the types of layers included in the first neural network and the second neural network and the connection relationships between the layers are the same, the central processing device 150 can determine whether the first neural network and the second neural network are structurally corresponding to each other by considering whether the size of the input data included in each layer of the first neural network and the second neural network is the same and whether the size of the output data included in each layer of the first neural network and the second neural network is the same. When the size of the input data and the size of the output data are the same, the dimensions of the input data and the dimensions of the output data are the same, and the number of data corresponding to the dimensions is the same. For example, when the number of two one-dimensional data is the same, the size of the two one-dimensional data is the same. Furthermore, when the number of horizontal data and vertical data between two two-dimensional data is the same, the size of the two two-dimensional data is the same. Furthermore, when the number of horizontal data, vertical data, and depth data between two three-dimensional data is the same, the size of the two three-dimensional data is the same. Furthermore, when the number of horizontal data, vertical data, depth data, and batch data between two four-dimensional data is the same, the size of the two four-dimensional data is also the same.

[0103] For example, when the first neural network and the second neural network, which have the same layer type and interlayer interconnection, each include three layers, and when the size of the input / output data of the first layer, the size of the input / output data of the second layer, and the size of the input / output data of the third layer included in the first neural network and the second neural network are the same, the central processing device 150 can determine that the first neural network and the second neural network correspond to each other in structure.

[0104] In embodiments of this disclosure, the central processing device 150 may determine whether layers are structurally corresponding to each other based on different criteria, depending on the type of layers included in the first neural network and the second neural network.

[0105] For example, when the first neural network and the second neural network both include an open network cluster (FCL) and the FCL contains the same number of nodes, the central processing unit 150 can determine that the first neural network and the second neural network are structurally corresponding to each other. For example, in Figure 10 In this context, because the second FCL 1016, which is the sixth layer of the first neural network 1010, includes three nodes, while the second FCL 1036 of the second neural network 1030 includes four nodes, the central processing device 150 can determine that the first neural network 1010 and the second neural network 1030 do not correspond to each other in structure.

[0106] Furthermore, for example, when the first neural network and the second neural network both include convolutional layers, and the number of filter kernels, the size of the filter kernels, the stride, and the padding size of the convolutional layers are the same, the central processing device 150 can determine that the first neural network and the second neural network are structurally corresponding to each other. The term "filter kernel" can refer to parameters used to find image features, and the term "stride" can refer to the distance the filter kernel moves relative to the input data. Furthermore, the term "padding" can refer to increasing the size of the input data by assigning a preset pixel value (e.g., 0) outside the input data, and the term "padding size" can correspond to the number of pixel rows added outside the input data. For example, when adding a row of pixels along the top, right, bottom, and left sides of the input data, the padding size can correspond to 1.

[0107] Furthermore, for example, when the first neural network and the second neural network both include pooling layers, and the filter kernel size, stride, and padding size of the pooling layers are the same, the central processing device 150 can determine that the first neural network and the second neural network are structurally corresponding to each other. The term "filter kernel" can refer to a filter that specifies some input data used to reduce the spatial resolution of the input data, and the term "stride" can refer to the distance the filter kernel moves. Furthermore, the term "padding" can refer to increasing the size of the input data by allocating preset pixel values ​​outside the input data, and the term "padding size" can correspond to the number of pixel rows added outside the input data.

[0108] In embodiments of this disclosure, when only some layers in the first neural network and the second neural network correspond to each other, the central processing device 150 may identify only those structurally corresponding matching layers as common neural networks, and may store the remaining layers of the first neural network and the remaining layers of the second neural network as separate neural networks, components, or layers in the auxiliary storage device 110. For example, when some layers of the first neural network structurally correspond to some layers of the second neural network, the central processing device 150 may divide the first neural network file into a first sub-file including the corresponding layers and a second sub-file including the remaining layers. The first sub-file may be stored as a common neural network in the auxiliary storage device 110, and the second sub-file may be stored as a separate neural network in the auxiliary storage device 110. Next, although the first sub-file, identified as a common neural network, is typically used to execute the first application and the second application, the second sub-file may only be loaded into the main storage device 130 when executing the first application. Furthermore, the central processing device 150 may divide the second neural network file into a first sub-file including the corresponding layers and a second sub-file including the remaining layers, and may remove the first sub-file from the auxiliary storage device 110, and may store the second sub-file as a separate neural network in the auxiliary storage device 110. The second sub-file can only be loaded into the main storage device 130 when the second application is executed.

[0109] refer to Figure 10 Because the first layers (i.e., 1011 and 1031) to the fifth layers (i.e., 1015 and 1035) of the first neural network 1010 and the second neural network 1030 are structurally corresponding to each other, the central processing device 150 can determine the first layers (i.e., 1011 and 1031) to the fifth layers (i.e., 1015 and 1035) as a common neural network. The central processing device 150 can store the sixth layer (i.e., 1016) of the first neural network 1010 as a separate neural network for the first application in the auxiliary storage device 110, and can also store the sixth layer (i.e., 1036) of the second neural network 1030 as a separate neural network for the second application in the auxiliary storage device 110.

[0110] When the first neural network 1010 needs to be executed, the central processing unit 150 can load the common neural network and the separate neural network of the first application into the main storage device 130. Similarly, when the second neural network 1030 needs to be executed, the central processing unit 150 can load the common neural network and the separate neural network of the second application into the main storage device 130. In this case, the output data of the common neural network can be used as the input data of the separate neural networks, or the output data of the separate neural networks can be used as the input data of the common neural network.

[0111] When at least one common neural network is stored in secondary storage device 110, central processing unit 150 can generate mapping information indicating which application uses each common neural network. For example, when common neural network A and common neural network B are stored in secondary storage device 110, central processing unit 150 can generate and store mapping information indicating that application "a" and application "b" use common neural network A, and application "c" and application "d" use common neural network B. When it is necessary to execute the neural networks included in application "a" and application "b", central processing unit 150 can load common neural network A into primary storage device 130 based on the pre-generated mapping information, and similarly, when it is necessary to execute the neural networks included in application "c" and application "d", central processing unit 150 can load common neural network B into primary storage device 130 based on the pre-generated mapping information.

[0112] Although a method for extracting a common neural network based on whether multiple neural networks correspond to each other structurally has been described, a method for storing the internal parameters used in the neural network will be described because the internal parameters used for the internal arithmetic operations of the neural network may differ between neural networks even after the common neural network is extracted.

[0113] Figure 11 and 12 This is a flowchart describing a method for storing the second internal parameters of a second neural network.

[0114] When the first neural network and the second neural network are structurally corresponding to each other and the first neural network is stored as a common neural network in the auxiliary storage device 110, in operation S1110, the central processing device 150 stores the first internal parameters used for arithmetic operations constituting each layer of the first neural network as common parameters in the auxiliary storage device 110. In embodiments of this disclosure, the first internal parameters may be stored in the first neural network file, or they may be stored in a metafile or a separate internal parameter file.

[0115] In operation S1120, the central processing unit 150 determines whether the second internal parameters and common parameters of the arithmetic operations used to constitute each layer of the second neural network are the same.

[0116] When the common neural network and the second neural network include multiple layers, the central processing device 150 can compare the common parameters used in each layer with the second intrinsic parameters in each layer, and can determine whether the second intrinsic parameters and the common parameters are the same. For example, when the common neural network and the second neural network include three layers, the central processing device 150 can compare the intrinsic parameters used in the first layer of the common neural network and the second neural network, compare the intrinsic parameters used in the second layer of the common neural network and the second neural network, and compare the intrinsic parameters used in the third layer of the common neural network and the second neural network, and can determine whether the second intrinsic parameters and the common parameters are the same.

[0117] In embodiments of this disclosure, when the value included in the common parameter is the same as the value included in the second internal parameter, the central processing device 150 can determine that the second internal parameter and the common parameter are the same.

[0118] When the common parameters and the second internal parameters are the same in operations S113-YES, in operation S1140, the central processing device 150 does not store the second internal parameters in the secondary storage device 110. The central processing device 150 may remove the second internal parameters stored in the secondary storage device 110. For example, the central processing device 150 may not store a second internal parameter file (e.g., a second neural network file, a metafile, or a separate internal parameter file) that includes information about the second internal parameters in the secondary storage device 110, or it may remove the second internal parameter file from the secondary storage device 110.

[0119] In operation S1150, when the second neural network needs to be executed, the central processing device 150 can load the common neural network and common parameters into the main storage device 130, and can enable the common neural network to perform internal arithmetic operations based on the common parameters.

[0120] Reference Figure 12 Describe the situation where the common parameter and the second internal parameter are different in operation S1130-NO.

[0121] In operation S1210, the central processing unit 150 determines the difference information between the common parameter and the second internal parameter.

[0122] In embodiments of this disclosure, the central processing device 150 can determine multiple difference information based on various calculation methods, and then determine the difference information with the smallest data size from the multiple difference information as the final difference information.

[0123] One of the various calculation methods could be to obtain the residual parameter as difference information by subtracting the second internal parameter (or common parameter) from the common parameter (or second internal parameter). For example, such as Figure 13 As shown, a residual parameter 1330 corresponding to the result obtained by subtracting the second intrinsic parameter 1320 from the common parameter 1310 can be obtained as difference information. In this case, the second intrinsic parameter 1320 can be recovered by subtracting the residual parameter 1330 from the common parameter 1310.

[0124] Another approach could be to obtain a selection parameter, as difference information, for choosing a value belonging to the second internal parameter from among the values ​​belonging to the common parameters when the second internal parameter is included in the common parameters. For example, ... Figure 14 As shown, since the values ​​corresponding to the first row and the values ​​corresponding to the third row in the common parameter 1410 are included in the second internal parameter 1420, the selection parameter 1430 for selecting the first row and the third row in the common parameter 1410 can be obtained as difference information.

[0125] Another approach is to obtain the transformation parameter as the difference information when the second intrinsic parameter can be obtained by multiplying the common parameter by the transformation parameter. For example, when the transformation parameter is T, the second intrinsic parameter can be... .

[0126] Another approach is as follows: when the second intrinsic parameter can be derived by multiplying the result of multiplying the first transformation parameter by the common parameter and then multiplying the second transformation parameter, the first and second transformation parameters are obtained as difference information. For example, when the first transformation parameter is T1 and the second transformation parameter is T2, the second intrinsic parameter can be... .

[0127] Another approach is as follows: when the second intrinsic parameter can be derived by multiplying the first transformation parameter by a common parameter to obtain the multiplication result, multiplying the multiplication result by the second transformation parameter, and adding the residual parameter, the first transformation parameter, the second transformation parameter, and the residual parameter are obtained as difference information. For example, when the first transformation parameter is T1, the second transformation parameter is T2, and the residual parameter is D, the second intrinsic parameter can be... .

[0128] Refer back Figure 12 In operation S1220, the central processing unit 150 determines whether the data size of the difference information is less than the data size of the second internal parameter.

[0129] When the size of the difference information in operation S1220-YES is smaller than the size of the second internal parameter, in operation S1230, the central processing unit 150 stores the difference information in the auxiliary storage device 110 instead of storing the second internal parameter in the auxiliary storage device 110. The difference information can be generated as a separate file and stored in the auxiliary storage device 110.

[0130] In operation S1240, when the second neural network needs to be executed, the central processing device 150 can load the common neural network, common parameters, and difference information into the main storage device 130, and in operation S1250, the central processing device 150 recovers the second internal parameters by applying the difference information to the common parameters. Therefore, the common neural network can operate according to the second internal parameters.

[0131] When the execution of the second neural network ends, the central processing unit 150 can unload the second internal parameters from the main storage device 130, and when the second neural network is executed again, the central processing unit 150 can load the common parameters and difference information into the main storage device 130, and then restore the second internal parameters.

[0132] When the size of the difference information in operation S1220-NO is not less than the size of the second internal parameter (i.e., the size of the difference information is equal to or greater than the size of the second internal parameter), in operation S1260, the central processing unit 150 does not store the difference information in the auxiliary storage device 110, but instead stores the second internal parameter in the auxiliary storage device 110. When the second internal parameter of the second neural network is stored in the second neural network file as described above, the central processing unit 150 may not store the second neural network file in the auxiliary storage device 110, and may store the second internal parameter stored in the second neural network file as a separate file in the auxiliary storage device 110. When the second internal parameter is stored in a meta file or a separate internal parameter file, the central processing unit 150 may store the meta file or the separate internal parameter file in the auxiliary storage device 110.

[0133] In operation S1270, when the second neural network needs to be executed, the central processing device 150 can load the common neural network and the second internal parameters into the main storage device 130, and enable the common neural network to work according to the second internal parameters.

[0134] In many cases, applications installed on mobile devices, including smartphones, are updated frequently. According to this disclosure, because the neural network included in the application can be extracted as a public neural network, reference will be made to... Figure 15-17Describe how to update the application in this situation.

[0135] Figure 15 and 16 It is a flowchart describing the method for updating the first application, and Figure 17 This is a block diagram illustrating a common neural network 1710, common parameters 1730, a neural network 1750 obtained based on an update file, and internal parameters 1770 obtained based on an update file, all related to the method of updating the first application.

[0136] In embodiments of this disclosure, the central processing device 150 may store update files in temporary files, and may obtain neural network 1750 and internal parameters 1770 by updating public neural network 1710 and public parameters 1730 according to files stored in the temporary folder, or may obtain neural network 1750 and internal parameters 1770 from neural network files stored in the temporary folder. In embodiments of this disclosure, the update file may include a file containing information indicating how to update the first application (e.g., difference data between the first application and the updated first application), and in this case, the central processing device 150 may obtain neural network 1750 and internal parameters 1770 by updating public neural network 1710 and public parameters 1730 according to the update file. In embodiments of this disclosure, the update file may include a new first application profile to replace the first application, and in this case, the central processing device 150 may obtain neural network 1750 and internal parameters 1770 from neural network files in the update file.

[0137] refer to Figure 15 and 17 In operation S1510, the central processing device 150 obtains the update file of the first application. The central processing device 150 may obtain the update file sent to the device 100 from the application distribution server, or it may obtain the update file sent to the device 100 via USB or the like.

[0138] As described above, the first neural network and the first internal parameters of the first application are stored in the auxiliary storage device 110 as a common neural network 1710 and a common parameter 1730.

[0139] In operation S1520, the central processing unit 150 obtains the neural network 1750 based on the updated file.

[0140] In operation S1530, the central processing unit 150 determines whether the neural network 1750 and the common neural network 1710 correspond to each other structurally. The central processing unit 150 may determine whether the neural network 1750 and the common neural network 1710 correspond to each other based on, for example, the types of layers included in the neural network 1750 and the common neural network 1710, the connections between the layers, and the size of the input / output data. The determination of whether the two neural networks correspond structurally has already been described above, therefore redundant explanations are omitted.

[0141] When neural network 1750 and common neural network 1710 are structurally corresponding in operation S1530-YES, in operation S1540, central processing device 150 does not store neural network 1750 in auxiliary storage device 110. Files constituting the first application, excluding the neural network file containing common neural network 1710, can be updated according to the update file. In operation S1550, when the first neural network needs to be executed, central processing device 150 loads common neural network 1710 into main storage device 130.

[0142] In embodiments of this disclosure, when only some layers of neural network 1750 structurally correspond to common neural network 1710, central processing device 150 can remove files corresponding to the respective layers from auxiliary storage device 110, and can store files corresponding to the remaining layers as separate neural networks in auxiliary storage device 110. Next, when the first neural network needs to be executed, central processing device 150 can load common neural network 1710 and the separate neural networks into main storage device 130.

[0143] When the neural network 1750 and the common neural network 1710 do not correspond to each other in operation S1530-NO, in operation S1560, the central processing device 150 stores the neural network 1750 as a separate neural network for the first application in the auxiliary storage device 110.

[0144] In operation S1570, when the first neural network needs to be executed, the central processing device 150 loads the neural network 1750, which is stored as a separate neural network, into the main storage device 130.

[0145] When the common neural network 1710 and the neural network 1750 correspond structurally to each other, the central processing unit 150 can determine whether the common parameter 1730 and the internal parameter 1770 obtained according to the update file are the same, which will refer to Figure 16 Describe it.

[0146] In operation S1610, the central processing unit 150 determines whether the internal parameters 1770 and the common parameters 1730 obtained based on the update file are the same.

[0147] In operation S1620, when internal parameter 1770 and common parameter 1730 are the same in operation S1610-YES, central processing device 150 does not store internal parameter 1770 in auxiliary storage device 110.

[0148] In operation S1630, when the first neural network needs to be executed, the central processing device 150 loads the common neural network 1710 and common parameters 1730 into the main storage device 130.

[0149] In operation S1640, when the intrinsic parameter 1770 and the common parameter 1730 differ from each other in operations S1610-NO, the central processing unit 150 stores the difference information between the intrinsic parameter 1770 and the common parameter 1730 in the auxiliary storage device 110. As described above, the central processing unit 150 can obtain the difference information by using various calculation methods, compare the difference information with the data size of the intrinsic parameter 1770 with the difference information with the minimum data size, and determine whether to store the difference information in the auxiliary storage device 110. When the size of the difference information is not less than the size of the intrinsic parameter 1770, the central processing unit 150 can store the intrinsic parameter 1770 in the auxiliary storage device 110 instead of the difference information. When the intrinsic parameter 1770 is stored in a file including the neural network 1750, the central processing unit 150 can generate a separate file including the intrinsic parameter 1770 and store the separate file in the auxiliary storage device 110. When the size of the difference information is not less than the size of the internal parameter 1770 and therefore the internal parameter 1770 is stored in the auxiliary storage device 110, the central processing device 150 can load the common neural network 1710 and the internal parameter 1770 into the main storage device 130 when the first neural network needs to be executed.

[0150] In operation S1650, after the difference information is stored in the auxiliary storage device 110, when the first neural network needs to be executed, the central processing device 150 loads the common neural network 1710, common parameters 1730, and difference information into the main storage device 130. In operation S1660, the central processing device 150 recovers the internal parameters 1770 by applying the difference information to the common parameters 1730. Therefore, the common neural network can operate according to the second internal parameters 1770.

[0151] Despite Figure 15 and 16The updated file of the second application using the public neural network 1710 can be obtained, and the second application can be updated, but problems may occur when the original difference information between the second internal parameters and the public parameters 1730 is pre-stored in the auxiliary storage device 110.

[0152] For example, when a new second intrinsic parameter of the second application is included in the update file and the new second intrinsic parameter is not the same as the common parameter 1730, the central processing unit 150 determines new difference information between the new second intrinsic parameter and the common parameter 1730. The central processing unit 150 can store the new difference information in the auxiliary storage device 110 based on the comparison result obtained by comparing the size of the new second intrinsic parameter and the new difference information. The original difference information between the second intrinsic parameter and the common parameter 1730 can be removed from the auxiliary storage device 110. Next, when the second neural network needs to be executed, the central processing unit 150 can recover the new second intrinsic parameter by applying the new difference information to the common parameter 1730.

[0153] Furthermore, when the update file only includes difference data between the new second intrinsic parameters and the original second intrinsic parameters, the central processing unit 150 first recovers the original second intrinsic parameters by applying the original difference information between the common parameter 1730 and the original second intrinsic parameters to the common parameter 1730. The central processing unit 150 obtains the new second intrinsic parameters by applying the difference data included in the update file to the original second intrinsic parameters. When the new second intrinsic parameters and the common parameter 1730 are not the same, the central processing unit 150 determines new difference information between the new second intrinsic parameters and the common parameter 1730. The central processing unit 150 stores the new difference information in the auxiliary storage device 110 based on the comparison result obtained by comparing the magnitude of the new second intrinsic parameters with the new difference information. Next, when the second neural network needs to be executed, the central processing unit 150 can recover the new second intrinsic parameters by applying the new difference information to the common parameter 1730.

[0154] Figure 18 This is a flowchart illustrating a method for managing an application according to an embodiment of the present disclosure.

[0155] Although Figure 3 The illustration shows a scenario where a first application and a second application are installed on device 100, and then a common neural network is extracted. Figure 18 This illustrates a situation where a third application, including a third neural network, is installed on device 100 while a common neural network is pre-stored in auxiliary storage device 110.

[0156] In operation S1810, the central processing unit 150 determines whether the common neural network and the third neural network correspond to each other in structure.

[0157] The central processing unit 150 can determine whether the common neural network and the third neural network correspond to each other in structure, for example, based on the type and connection relationship of the layers that constitute the neural network.

[0158] When the common neural network and the third neural network correspond structurally to each other in operation S1820-YES, in operation S1830, the central processing device 150 may store the files of the third application file, excluding the third neural network, in the auxiliary storage device 110. The central processing device 150 may choose not to store the third neural network file of the third application file in the auxiliary storage device 110.

[0159] In operation S1840, when a third neural network needs to be executed and the common neural network is not loaded into the main storage device 130, the central processing device 150 can load the common neural network into the main storage device 130.

[0160] When the common neural network and the third neural network do not correspond structurally in operations S1820-NO, in operation S1850, the central processing unit 150 stores the files constituting the third application in the auxiliary storage device 110. When the common neural network and the third neural network do not correspond structurally, because the common neural network may not be used to execute the third application, all files constituting the third application are stored in the auxiliary storage device 110.

[0161] In embodiments of this disclosure, when the common neural network and the third neural network do not correspond structurally to each other, before the files constituting the third application are stored in the auxiliary storage device 110, the central processing device 150 can determine whether a new common neural network can be extracted by comparing the structure of the third neural network with the structure of the neural networks of pre-stored applications (e.g., the first application and the second application). The method for determining whether to extract a new common neural network by comparing the structure of the third neural network with the structure of the neural networks of pre-stored applications is consistent with reference to... Figure 3 The method of description is the same, and therefore redundant explanations are omitted. When the third neural network and the pre-stored application neural network correspond to each other in structure, the pre-stored application neural network can be stored as a common neural network in the auxiliary storage device 110, and files other than the third neural network in the files constituting the third application can be stored in the auxiliary storage device 110.

[0162] After all the files constituting the third application are stored in the secondary storage device 110, in operation S1860, when the third neural network needs to be executed, the central processing device 150 can load the third neural network, which is stored as a separate neural network, into the main storage device 130.

[0163] When it is determined in operation S1820 that the common neural network and the third neural network correspond structurally to each other, as described above, the central processing unit 150 can determine whether the common parameters and the third internal parameters of the third neural network are the same, and can determine whether to store the third internal parameters in the auxiliary storage device 110 or whether to store the difference information between the common parameters and the third internal parameters in the auxiliary storage device 110. Next, when the third neural network needs to be executed, the central processing unit 150 can load the common neural network, the common parameters, and the difference information into the main storage device 130, or it can load the common neural network and the third internal parameters into the main storage device 130.

[0164] Embodiments of this disclosure can be implemented as a computer-executable program or instructions, and the program can be stored in a medium or computer program product.

[0165] Media or computer program products may continuously store computer executable programs, or may temporarily store computer executable programs for execution or download. Furthermore, media or computer program products may be any of a variety of recording or storage devices comprising a single piece of hardware or a combination of multiple pieces of hardware, and may be distributed across a network, not limited to media directly connected to a computer system. Media or computer program products may be configured to store program instructions, and examples of media may include: magnetic media such as hard disks, floppy disks, or magnetic tapes; optical recording media such as CD-ROMs or DVDs; and media such as optical discs, ROMs, RAMs, and flash memory. Other examples of media or computer program products may include recording and storage media managed by application stores that distribute applications or by sites or servers that provide or distribute various other software.

[0166] The apparatus and method for managing applications according to embodiments of the present disclosure can reduce the data size of applications stored in a device.

[0167] Furthermore, the apparatus and method for managing applications according to embodiments of this disclosure can reduce the size of data loaded into the main storage device to execute the application.

[0168] However, the effects that can be achieved by the apparatus and method for managing applications according to the embodiments of this disclosure are not limited thereto, and other effects can be readily understood by those skilled in the art from the description.

[0169] Although this disclosure has been specifically shown and described with reference to embodiments thereof, those skilled in the art will understand that various changes in form and detail may be made without departing from the spirit and scope of this disclosure as defined by the appended claims.

Claims

1. An apparatus for managing a program, the apparatus comprising: At least one storage device stores a common neural network, a first program including a first separate neural network, a second program including a second separate neural network, first mapping information, and second mapping information, wherein the first mapping information indicates that the first program utilizes the common neural network, and the second mapping information indicates that the second program utilizes the common neural network; and At least one processor is configured as follows: Based on the execution of the first program: Load the public neural network using the first mapping information; and Using the public neural network and the first individual neural network, the first process is performed on the first program. Based on the execution of the second program: Load the public neural network using the second mapping information; and The second process is performed on the second program using the public neural network and the second separate neural network.

2. The apparatus according to claim 1, wherein, The common neural network and the first individual neural network perform different processes from each other, and the common neural network and the second individual neural network perform different processes from each other.

3. The apparatus according to claim 1, wherein, The first and second individual neural networks perform different processes.

4. The apparatus according to claim 1, wherein, The execution results of the first program and the execution results of the second program are different from each other.

5. The apparatus according to claim 1, wherein, The at least one storage device stores a first sub-file of the first individual neural network, a second sub-file of the second individual neural network, and a third sub-file of the common neural network.

6. The apparatus according to claim 1, wherein, The at least one storage device stores the first program as a file associated with the first individual neural network and a file associated with the execution of the first program.

7. The apparatus according to claim 1, wherein, The at least one processor is further configured to: Based on the execution of the first program, a first sub-file related to the first individual neural network and a third sub-file related to the public neural network are obtained for use in executing the first processing, and Based on the execution of the second program, a second sub-file related to the second individual neural network and a third sub-file related to the public neural network are obtained for use in performing the second process.

8. The apparatus according to claim 1, wherein, The at least one processor is further configured to obtain an update file of the first program or the second program, and to update at least one of the first individual neural network, the second individual neural network, and the common neural network according to the update file.

9. The apparatus according to claim 1, wherein, The at least one processor is further configured to: The third neural network within the first neural network of the first program or the fourth neural network within the second neural network of the second program is determined as the common neural network.

10. The apparatus according to claim 9, wherein, The at least one processor is also configured to control the installation of a first file constituting the first program and a second file constituting the second program.

11. The apparatus according to claim 9, wherein, The at least one processor is further configured to: First structural information of the first neural network is obtained from the first metafile included in the first program. Obtain the second structural information of the second neural network from the second metafile included in the second program, and By comparing the first structural information and the second structural information, the third neural network or the fourth neural network is determined as the common neural network.

12. The apparatus according to claim 11, wherein, The first structural information includes a first type of the first layer contained in the first neural network and a first connection relationship between the first layers contained in the first neural network. The second structural information includes a second type of the second layer contained in the second neural network and a second connection relationship between the second layers contained in the second neural network.

13. The apparatus according to claim 11, wherein, The first structural information includes the first size of the first input data and the first output data contained in the first layer of the first neural network, and The second structural information includes the second size of the second input data and the second output data contained in the second layer of the second neural network.

14. The apparatus according to claim 11, wherein, The first structural information includes a first number of nodes in each layer contained in the first fully connected layer of the first neural network, and The second structural information includes the second number of nodes in each layer of the second fully connected layer of the second neural network.

15. The apparatus according to claim 11, wherein, When the first neural network includes a first convolutional layer and the second neural network includes a second convolutional layer: The first structural information includes the first number of first filter kernels of the first convolutional layer, the first size of the first filter kernels of the first convolutional layer, and the first step length of the first convolutional layer. The second structural information includes the second number of second filter kernels of the second convolutional layer, the second size of the second filter kernels of the second convolutional layer, and the second stride of the second convolutional layer.

16. The apparatus according to claim 11, wherein, When the first neural network includes a first pooling layer and the second neural network includes a second pooling layer: The first structural information includes the first size of the first filter kernel of the first pooling layer and the first step length of the first pooling layer, and The second structural information includes the second size of the second filter kernel of the second pooling layer and the second step size of the second pooling layer.

17. The apparatus according to claim 9, wherein, The at least one processor is further configured to: The first internal parameters used to process the first data in the third neural network of the first program are stored as common parameters in the at least one storage device. The common parameters are determined to be different from the second intrinsic parameters used to process the second data in the fourth neural network of the second procedure. Determine the difference information between the common parameter and the second intrinsic parameter, and The difference information is stored in the at least one storage device.

18. The apparatus according to claim 17, wherein, The at least one processor is further configured to: The difference information is determined as at least one of the following: the residual parameter added to the common parameter, the transformation parameter multiplied by the common parameter, or the selection parameter used to select a portion of the common parameter.

19. The apparatus according to claim 17, wherein, The at least one processor is further configured to: Multiple difference information between the common parameter and the second intrinsic parameter is determined based on various calculation methods, and The smallest difference information among the plurality of difference information is stored in the at least one storage device.

20. The apparatus according to claim 17, wherein, The at least one processor is further configured to: When the second procedure is executed, the second intrinsic parameter is recovered from the common parameter based on the difference information, and The second internal parameter is loaded into the main storage device of the device.

21. The apparatus according to claim 9, wherein, The at least one processor is further configured to: The first internal parameters used to process the first data in the third neural network of the first program are stored as common parameters in the at least one storage device. The common parameters are determined to be different from the second intrinsic parameters used to process the second data in the fourth neural network of the second procedure. Determine the difference information between the common parameter and the second intrinsic parameter, and Based on the result obtained by comparing the size of the difference information with the size of the second internal parameter, it is determined whether to store the difference information in the at least one storage device.

22. The apparatus according to claim 9, wherein, The at least one processor is further configured to: Obtain updated data related to the first program. The fifth neural network is obtained from the updated data. Determine whether the fifth neural network and the common neural network are structurally incompatible, and If the fifth neural network and the common neural network do not correspond to each other in structure, the fifth neural network is stored as a separate neural network of the first program in the at least one storage device.

23. The apparatus according to claim 22, wherein, The at least one processor is further configured to: If the fifth neural network and the common neural network correspond to each other structurally, and if the common parameters and the internal parameters obtained based on the updated data are different from each other, The difference information between the public parameters and the internal parameters is stored in the at least one storage device.

24. The apparatus according to claim 23, wherein, If the fifth neural network and the common neural network are structurally corresponding to each other, the fifth neural network is not stored as a separate neural network of the first program in the at least one storage device.

25. A method for an apparatus for managing a program, the method comprising: The device stores a common neural network, a first program including a first separate neural network, a second program including a second separate neural network, first mapping information, and second mapping information in at least one storage device, wherein the first mapping information indicates that the first program utilizes the common neural network, and the second mapping information indicates that the second program utilizes the common neural network. When the first program is executed, the first mapping information is used to load the public neural network, and the first processing is performed on the first program using the public neural network and the first individual neural network; as well as When the second program is executed, the public neural network is loaded using the second mapping information, and the second processing is performed on the second program using the public neural network and the second separate neural network.

26. A non-transitory computer-readable medium having thereon implemented a program for performing a method for managing a program, the method comprising: The first program, comprising a first separate neural network, the second program, comprising a second separate neural network, first mapping information, and second mapping information are stored in at least one storage device, wherein the first mapping information indicates that the first program utilizes the public neural network, and the second mapping information indicates that the second program utilizes the public neural network. When the first program is executed, the first mapping information is used to load the public neural network, and the first processing is performed on the first program using the public neural network and the first individual neural network; as well as When the second program is executed, the public neural network is loaded using the second mapping information, and the second processing is performed on the second program using the public neural network and the second separate neural network.