A spiking neural network

By introducing registers and switches into the pulse neural network and using a controller to control the switching of neuron models, the problems of insufficient versatility and flexibility of traditional pulse neural networks are solved, and flexible switching of multiple neuron models and improved information processing capabilities are achieved.

CN113379043BActive Publication Date: 2025-09-26HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010115259.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-02-25
Publication Date
2025-09-26
Estimated Expiration
2040-02-25

AI Technical Summary

Technical Problem

Neurons in traditional spiking neural networks can only implement one neuron model, resulting in poor versatility and flexibility.

Method used

By introducing multiple registers and switches into the pulse neural network and using the controller to control the switch state and amplifier coefficient according to the configuration information, the neurons can realize a variety of different neuron models, such as the cumulative firing IF neuron model, the leakage cumulative firing LIF neuron model, the pulse response model SRM and the neuron model with adjustable threshold voltage.

Benefits of technology

It achieves good versatility and flexibility of pulse neural networks, can adapt to the switching of multiple neuron models, and improves information processing capabilities and adaptability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113379043B_ABST
    Figure CN113379043B_ABST
Patent Text Reader

Abstract

A spiking neural network includes a neuron and a controller. The neuron includes multiple registers and multiple switches, each of the multiple switches being used to control connectivity between some of the multiple registers. The controller is used to control the multiple switches in the neuron based on multiple configuration information, so that the neuron implements at least two neuron models based on the information stored in the connected registers. Any neuron in the spiking neural network provided in this application can implement multiple different neural network models, demonstrating excellent versatility and flexibility.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of neural networks, and more particularly, to a spiking neural network. Background Art

[0002] Artificial intelligence (AI) refers to the theories, methods, technologies, and application systems that use digital computers or machines controlled by digital computers to simulate, extend, and expand human intelligence, to perceive the environment, acquire knowledge, and use that knowledge to achieve optimal results. In other words, AI is a branch of computer science that seeks to understand the essence of intelligence and develop new intelligent machines that can respond in a manner similar to human intelligence. AI also studies the design principles and implementation methods of various intelligent machines, enabling them to possess the capabilities of perception, reasoning, and decision-making. Research in the field of AI includes robotics, natural language processing, computer vision, decision-making and reasoning, human-computer interaction, recommendation and search, and basic AI theory.

[0003] Spiking neural networks (SNNs), as an emerging artificial neural network, are closer to real biological processing systems in terms of information processing methods and biological models than traditional artificial neural networks. Each neuron in a spiking neural network can be divided into multiple types of neuron models based on how it achieves membrane voltage accumulation.

[0004] In traditional spiking neural networks, neurons can only implement one neuron model, which results in poor versatility and flexibility. Summary of the Invention

[0005] The present application provides a pulse neural network that can implement a variety of different neural network models using one architecture, and has good versatility and flexibility.

[0006] In a first aspect, a pulse neural network is provided, comprising: a neuron, wherein the neuron includes a plurality of registers and a plurality of switches, wherein each of the plurality of switches is used to control connectivity between some of the plurality of registers; and a controller, configured to control the plurality of switches in the neuron according to a plurality of configuration information, respectively, so that the neuron implements at least two neuron models according to information stored in the connected registers.

[0007] Optionally, amplifiers are also included between some registers in the pulse neural network, and the above configuration information may also include coefficients in configuring the amplifiers.

[0008] In the aforementioned spiking neural network, various configurations are determined based on the operating principle of accumulating membrane voltages in various neuron models. The controller uses this configuration information to control the various switch states in the neurons and configure the coefficients in the amplifiers. This allows the controller to control neurons to implement different neuron models based on different configurations, making the spiking neural network highly versatile and flexible.

[0009] In a possible implementation, the at least two neuron models include at least two of the following neuron models: a cumulative-spiking IF neuron model, a leaky cumulative-spiking LIF neuron model, a pulse response model SRM, and a neuron model with adjustable threshold voltage.

[0010] In another possible implementation, the at least two neuron models include the IF neuron model, and the neuron includes a first switch, a first voltage register, a second voltage register, and a first voltage adjustment register;

[0011] the controller being configured to control the first switch to be in a first position according to first configuration information among the plurality of configuration information, wherein the first switch being in the first position indicates that an input end of the neuron is connected to an input end of the first voltage register, and the input end of the neuron is configured to input an input pulse of the neuron;

[0012] The first voltage adjustment register is used to store the voltage adjustment value of the neuron at time t-1, where the voltage adjustment value at time t-1 is determined based on whether the neuron emits a pulse at time t-1;

[0013] The second voltage register is used to store the membrane voltage of the neuron at the time t-1;

[0014] The first voltage register is used to determine the membrane voltage of the neuron at time t based on the input pulse of the neuron at time t, the membrane voltage at time t-1, and the voltage adjustment value at time t-1, where time t-1 is the moment before time t.

[0015] In another possible implementation, the at least two neuron models include a leakage accumulation and firing (LIF) neuron model, wherein the neuron includes a first switch, a first voltage register, a second voltage register, a first voltage adjustment register, and a current input module.

[0016] The controller is further configured to control the first switch to be in a second position according to second configuration information among the plurality of configuration information, wherein the first switch being in the second position indicates that the input end of the current input module is connected to the input end of the neuron;

[0017] The second voltage register is used to store the membrane voltage of the neuron at time t-1;

[0018] The first voltage adjustment register is used to store the voltage adjustment value of the neuron at time t-1;

[0019] The current input module is used to store the input current of the neuron at time t-1, where the input current at time t-1 is determined based on the input pulse of the neuron at time t-1 and the input current at time t-2;

[0020] The first voltage register is used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, and the voltage adjustment value at time t-1.

[0021] In another possible implementation, the at least two neuron models further include an impulse response model SRM, and the neuron further includes a second voltage adjustment register and a second switch.

[0022] The controller is further configured to control the first switch to be in the second position and the second switch to be in an off state according to third configuration information among the plurality of configuration information, wherein the off state of the second switch indicates that the second voltage adjustment register is connected to the first voltage adjustment register;

[0023] the second voltage adjustment register being configured to adjust the voltage adjustment value of the neuron at time t-1 according to whether the neuron emits a pulse at time t-1 and the voltage adjustment value at time t-2, and to send the adjusted voltage adjustment value at time t-1 to the first voltage adjustment register;

[0024] The first voltage adjustment register is further used to store the adjusted voltage adjustment value at time t-1;

[0025] The first voltage register is further used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, and the adjusted voltage adjustment value at time t-1.

[0026] In another possible implementation, the at least two neuron models further include an IF neuron model with an adjustable first threshold voltage, and the neuron further includes a threshold adjustment module and a third switch.

[0027] The controller is further configured to control the first switch to be in the first position and the third switch to be in an off state according to fourth configuration information among the plurality of configuration information, wherein the off state of the third switch indicates that the threshold adjustment module is connected to the first voltage register;

[0028] The threshold adjustment module is used to store a first threshold voltage of the neuron at time t-1, where the first threshold voltage at time t-1 is determined based on whether the neuron emits a pulse at time t-1 and the threshold voltage at time t-2;

[0029] The first voltage register is also used to determine the membrane voltage of the neuron at time t based on the input pulse of the neuron at time t, the membrane voltage at time t-1, the voltage adjustment value at time t-1, and the first threshold voltage at time t-1.

[0030] In another possible implementation, the at least two neuron models further include an IF neuron model with an adjustable second threshold voltage, and the neuron further includes a fourth switch.

[0031] The controller is further configured to control the first switch to be in the first position, the third switch to be in an off state, and the fourth switch to be in an off state according to fifth configuration information among the plurality of configuration information, wherein the off state of the fourth switch indicates that the threshold adjustment module is connected to the second voltage register;

[0032] The threshold adjustment module is further configured to store a second threshold voltage of the neuron at time t-1, where the second threshold voltage at time t-1 is determined based on whether the neuron emits a pulse at time t-1, the threshold voltage at time t-2, and the membrane voltage at time t-1;

[0033] The first voltage register is also used to determine the membrane voltage of the neuron at time t based on the input pulse of the neuron at time t, the membrane voltage at time t-1, the voltage adjustment value at time t-1, and the second threshold voltage at time t-1.

[0034] In another possible implementation, the at least two neuron models further include a LIF neuron model with an adjustable first threshold voltage, and the neuron further includes a threshold adjustment module and a third switch.

[0035] The controller is further configured to control the first switch to be in the second position and the third switch to be in an off state according to sixth configuration information among the plurality of configuration information;

[0036] The threshold adjustment module is used to store the first threshold voltage of the neuron at time t-1;

[0037] The first voltage register is also used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, the voltage adjustment value at time t-1, and the first threshold voltage at time t-1.

[0038] In another possible implementation, the at least two neuron models further include a LIF neuron model with an adjustable second threshold voltage, and the neuron further includes a fourth switch.

[0039] The controller is further configured to control the first switch to be in the first position, the third switch to be in an off state, and the fourth switch to be in an off state according to seventh configuration information among the plurality of configuration information;

[0040] The threshold adjustment module is further used to store the second threshold voltage of the neuron at time t-1;

[0041] The first voltage register is also used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, the voltage adjustment value at time t-1, and the second threshold voltage at time t-1.

[0042] In another possible implementation, the at least two neuron models further include an SRM neuron model with an adjustable first threshold voltage, and the neuron further includes a threshold adjustment module and a third switch;

[0043] The controller is further configured to control the first switch to be in the second position, the second switch to be in an off state, and the third switch to be in an off state according to eighth configuration information among the plurality of configuration information;

[0044] The threshold adjustment module is used to store the first threshold voltage of the neuron at time t-1;

[0045] The first voltage register is also used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, the adjusted voltage adjustment value at time t-1, and the first threshold voltage at time t-1.

[0046] In another possible implementation, the at least two neuron models further include a neuron model with an adjustable second threshold voltage, and the neuron further includes a fourth switch.

[0047] The controller is further configured to control the first switch to be in the second position, the second switch to be in an off state, the third switch to be in an off state, and the fourth switch to be in an off state according to ninth configuration information among the plurality of configuration information;

[0048] The threshold adjustment module is further used to store the second threshold voltage of the neuron at time t-1;

[0049] The first voltage register is also used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, the adjusted voltage adjustment value at time t-1, and the second threshold voltage at time t-1.

[0050] In another possible implementation, before the controller controls the multiple switches in each of the neurons according to the multiple configuration information, the controller is further configured to receive the multiple configuration information.

[0051] In another possible implementation, the neuron further includes:

[0052] a comparator, configured to compare the membrane voltage of the first neuron at time t stored in the first voltage register;

[0053] The pulse generator is used to generate a pulse when the comparator determines that the membrane voltage of the first neuron at time t is greater than or equal to the threshold voltage, and to send the pulse to the neuron connected to the first neuron. BRIEF DESCRIPTION OF THE DRAWINGS

[0054] Figure 1 This is a possible neural network structure provided by an embodiment of the present application.

[0055] Figure 2 2 is a schematic structural diagram of a pulse neural network 200 provided in an embodiment of the present application.

[0056] Figure 3 3 is a schematic structural diagram of a general pulse neural network 300 provided in an embodiment of the present application.

[0057] Figure 4 3 is a schematic flowchart of a method for implementing at least two neuron models by a neuron 301 provided in an embodiment of the present application. DETAILED DESCRIPTION

[0058] The technical solution in this application will be described below with reference to the accompanying drawings.

[0059] Artificial intelligence (AI) refers to the theories, methods, technologies, and application systems that use digital computers or machines controlled by digital computers to simulate, extend, and expand human intelligence, to perceive the environment, acquire knowledge, and use that knowledge to achieve optimal results. In other words, AI is a branch of computer science that seeks to understand the essence of intelligence and develop new intelligent machines that can respond in a manner similar to human intelligence. AI also studies the design principles and implementation methods of various intelligent machines, enabling them to possess the capabilities of perception, reasoning, and decision-making. Research in the field of AI includes robotics, natural language processing, computer vision, decision-making and reasoning, human-computer interaction, recommendation and search, and basic AI theory.

[0060] In the fields of machine learning and cognitive science, a neural network (NN) is a mathematical or computational model that mimics the structure and function of biological neural networks (the central nervous system of animals, particularly the brain) and is used to estimate or approximate functions. The biological brain is composed of a large number of neurons connected in different ways, with information transmitted between neurons via synapses.

[0061] Figure 1 A possible neural network structure is shown. Figure 1 The neural network can include multiple nodes, each of which simulates a neuron and is used to perform a specific operation, such as an activation function. The connection between the previous neuron and the next neuron simulates a synapse. It should be understood that a synapse is a medium for transmitting information between two neurons, and the weight value of the synapse represents the strength of the connection between the two neurons.

[0062] Spiking neural networks (SNNs), often hailed as the third generation of artificial neural networks, are an emerging class of artificial neural networks. Their information processing methods and biological models are closer to real biological processing systems than traditional artificial neural networks. Their higher parallelism and lower power consumption during operation make them promising for a wider range of applications in future fields such as pattern recognition, natural language processing, complex control, and optimization.

[0063] In spiking neural networks, information is transmitted between neurons in the form of pulses, based on discrete, rather than continuous, activity occurring at specific points in time. The occurrence of a pulse is determined by differential equations representing various biological processes, the most important of which is the neuron's membrane voltage. Each neuron accumulates the pulse trains of preceding neurons, and its membrane voltage changes with incoming pulses. When a neuron's membrane voltage reaches a certain preset voltage, it becomes activated and generates a new signal (for example, a pulse), which it transmits to other connected neurons. After the neuron fires a pulse, its membrane voltage resets, and it continues to change its membrane voltage by accumulating the pulse trains of preceding neurons. Neurons in spiking neural networks transmit and process information in this manner, exhibiting information processing capabilities such as nonlinearity, adaptability, and fault tolerance.

[0064] It should be understood that two neurons in an SNN can be connected by a single synaptic connection or by multiple synaptic connections, which is not specifically limited in this application. Each synapse has a modifiable synaptic weight, and multiple pulses transmitted by the presynaptic neuron can generate different postsynaptic membrane voltages based on the size of the synaptic weight.

[0065] When using SNN to implement tasks, the pulses emitted by the preceding neurons form the input current of the succeeding neurons through a certain conversion relationship. The succeeding neurons receive the input current, which causes the membrane voltage of the neurons to increase. When the membrane voltage reaches a certain threshold voltage, the neuron will generate a new pulse to transmit to the succeeding neurons of the neuron. At the same time, the neuron membrane voltage is reset according to certain rules. According to the different ways of accumulating membrane voltage on neurons, resetting membrane voltage, and setting threshold voltage, neurons in SNN can be divided into different neuron models. For example, the integrate and fire (IF) neuron model, the leaky integrate and fire (LIF) neuron model, the spike response model (SRM) neuron model, and the neuron model with variable threshold.

[0066] Specifically, the IF neuron model refers to a model in which the neuron membrane voltage accumulates preceding pulses in a fixed manner, emits new pulses after reaching the threshold voltage, and resets the membrane voltage to the resting voltage. The LIF neuron model is a model in which, when the neuron membrane voltage accumulates preceding pulses, the amount of voltage accumulated by the neuron decreases as the time interval increases for each pulse, emits new pulses after reaching the threshold voltage, and resets the membrane voltage to the resting voltage. The SRM neuron model refers to a model in which the membrane voltage changes through a dynamic accumulation pulse function and a dynamic membrane voltage reset method. The variable threshold neuron model refers to a model in which the threshold voltage of the neuron changes accordingly based on the current pulse emission history of the neuron, making the threshold voltage non-fixed.

[0067] It should be understood that the threshold-variable neuron model can be combined with the above-mentioned IF, LIF, SRM and other models to form an IF neuron model, a threshold-variable LIF neuron model, a threshold-variable SRM neuron model and the like.

[0068] Diversified neurons enhance SNNs' expressiveness, noise immunity, and transferability. However, traditional approaches only allow each neuron to implement a single neuron model. Therefore, designing a universal spiking neural network, where each neuron can implement at least two neuron models, is an urgent challenge.

[0069] An embodiment of the present application provides a universal spiking neural network, in which each neuron can implement at least two neuron models.

[0070] For the convenience of description, the following Figure 2 , a detailed description of the system architecture applicable to the embodiments of the present application is given.

[0071] Figure 2 Schematic diagram of a pulse neural network 200 provided in an embodiment of the present application. Figure 2 As shown, the pulse neural network 200 may include: a framer 210, an SNN front end 220, a management unit 240, an SNN core processing unit 230, and an SNN back end 250. The above modules are connected through a peripheral component interconnect express (PCIE) bus.

[0072] The framer 210 is used to receive input information from external sensors and input the input information into the SNN front end 220.

[0073] The SNN front end 220 is used to convert the input information of the framer 210 into a pulse sequence and input the pulse sequence to the SNN core processing unit 230.

[0074] The SNN core processing unit 230 includes multiple neuron units 231 and multiple routers 232. The neuron units 231 are used to accumulate neuron membrane voltage and perform pulse emission. The routers 232 are used to transmit the pulse data emitted by the neurons 231.

[0075] The management unit 240 may include a controller 241 and a memory 242. Figure 2 In addition to the components shown, the management unit 240 may also include other components such as a communication interface and a disk as an external memory, which are not limited here.

[0076] The controller 241 is the computing core and control unit of the management unit 240. The controller 241 may include multiple processor cores. The controller 241 may be a large-scale integrated circuit. A software program is installed in the controller 241, so that the controller 241 can realize the memory 242, cache, disk and peripheral devices (such as Figure 2 Access to the SNN core processing unit 230).

[0077] It is understandable that, in the embodiment of the present application, the core in the controller 241 may be, for example, a central processing unit (CPU) or other application specific integrated circuit (ASIC).

[0078] It should be understood that the controller 241 in the embodiment of the present application may also be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc.

[0079] The memory 242 is connected to the controller 241 via a double data rate (DDR) bus. The memory 242 is usually used to store input and output data. In order to improve the access speed of the controller 241, the memory 242 needs to have a fast access speed. In traditional computer system architectures, dynamic random access memory (DRAM) is usually used as the memory 242. The controller 241 can access the memory through the memory controller ( Figure 2 (not shown) high-speed access to the memory 242, and performing read and write operations on any storage unit in the memory 242.

[0080] It should also be understood that the memory 242 in the embodiments of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of random access memory (RAM) are available, such as static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link DRAM (SLDRAM), and direct rambus RAM (DR RAM).

[0081] The SNN backend 250 is used to input the results output by the SNN core processing unit 230 into the framer 210.

[0082] The framer 210 is also used to decode the results output by the SNN core processing unit 230.

[0083] In an embodiment of the present application, each neuron 231 of the SNN core processing unit 230 may include multiple registers and multiple switches, and the switches are used to control the connectivity between some of the multiple registers. The controller 241 of the management unit 240 may also receive multiple configuration information sent by the user, and according to the multiple configuration information, it can control the multiple switches in each of the neurons, thereby controlling each neuron 231 to implement at least two neuron models, so that the pulse neural network has good versatility and flexibility.

[0084] The following combination Figure 3 , a general pulse neural network provided in an embodiment of the present application is described in detail.

[0085] Figure 3 3 is a schematic structural diagram of a general pulse neural network 300 provided in an embodiment of the present application. Figure 3 As shown, the pulse neural network 300 includes: an SNN core processing unit 230 and a controller 241.

[0086] The SNN core processing unit 230 includes at least two neurons, each of which includes multiple registers and multiple switches, and the switches are used to control whether some of the multiple registers are connected.

[0087] The controller 241 is configured to control multiple switches in each neuron according to multiple configuration information, so that each neuron implements at least two neuron models, wherein each configuration information includes a control signal for each switch in each neuron.

[0088] For ease of description, Figure 3 The following description will be made using neuron 301 as an example. Neuron 301 is any one of the multiple neurons in the SNN core processing unit 230.

[0089] See also Figure 3 The neuron 301 may include: a current input module 310 (including a first current input register 311 and a second current register 312), a first voltage adjustment register 320, a second voltage adjustment register 330, a threshold adjustment module 340 (including a first threshold adjustment register 341 and a second threshold adjustment register 342), a first voltage register 350, a second voltage register 360, a comparator 370, and a pulse generator 380.

[0090] Among them, a first switch is set between the input end of the neuron 301 and the first voltage register 350 and the current input module 310, a second switch is set between the first voltage adjustment register 320 and the second voltage adjustment register 330, a third switch is set between the threshold adjustment module 340 and the first voltage register 350, and a fourth switch is set between the second voltage register 360 and the second threshold adjustment register 342.

[0091] The first current input register 311 is used to store the input current of the neuron 301 at the previous moment, so that the neuron 301 can calculate the membrane voltage at the current moment according to the input current at the previous moment.

[0092] The second current register 312 is used to calculate the current input of the neuron 301 at the current moment based on the input pulse of the neuron 301 at the current moment and the input current of the neuron 301 at the previous moment. The second current register 312 is used to calculate the current input of the neuron 301 at the next moment based on the current input of the neuron 301 at the current moment stored in the first current input register 311.

[0093] It should be understood that the current input at the current moment is transmitted to the first current input register 311, and the current input at the current moment may overwrite the input current at the previous moment stored in the first current input register 311. This allows the first current input register 311 to store the current input at the current moment, so that the neuron 301 can calculate the membrane voltage at the next moment.

[0094] The first voltage adjustment register 320 is used to store the voltage adjustment value of the neuron 301 at the previous moment, so that the neuron 301 can calculate the membrane voltage at the current moment according to the voltage adjustment value at the previous moment.

[0095] If the second switch between the second voltage adjustment register 330 and the first voltage adjustment register 320 is open, the second voltage adjustment register 330 is disconnected from the first voltage adjustment register 320. The second voltage adjustment register 330 is used to determine the current voltage adjustment value based on the output of the pulse generator 380. If the second switch between the second voltage adjustment register 330 and the first voltage adjustment register 320 is closed, the second voltage adjustment register 330 is connected to the first voltage adjustment register 320 and is used to determine the current voltage adjustment value based on the output of the pulse generator 380 and the voltage adjustment value of the neuron 301 at the previous moment. The second voltage adjustment register 330 can also transfer the calculated voltage adjustment value at the current moment to the first voltage adjustment register 320, so that the neuron 301 can calculate the membrane voltage at the next moment based on the current voltage adjustment value.

[0096] It should be understood that if the pulse generator 380 emits a pulse, the output of the pulse generator 380 is 1, and the membrane voltage of the neuron 301 is reset and adjusted according to a pre-set rule, and the membrane voltage accumulation at the next moment is performed. If the pulse generator 380 does not emit a pulse, the output of the pulse generator 380 is 0, and the membrane voltage of the neuron 301 is not reset or adjusted, but continues to accumulate the membrane voltage according to the input pulse.

[0097] The first threshold adjustment register 341 is used to store the threshold adjustment value of the neuron 301 at the previous moment, so that the neuron 301 can calculate the membrane voltage at the current moment according to the threshold adjustment value at the previous moment.

[0098] The second threshold adjustment register 342 is used to calculate the threshold adjustment value at the current moment based on the output of the pulse generator 380 of the neuron 301 and the threshold adjustment value of the neuron 301 at the previous moment. The second threshold adjustment register 342 is used to transfer the current threshold adjustment value to the first threshold adjustment register 341, so that the neuron 301 can calculate the membrane voltage at the next moment based on the current threshold adjustment value stored in the first threshold adjustment register 341.

[0099] It should also be noted that the first threshold adjustment register 341 and the second threshold adjustment register 342 are optional. That is, after the neuron 301 emits a pulse, the threshold voltage of the neuron 301 can remain unchanged, or the threshold voltage can be adjusted according to the history of the pulse emission.

[0100] The second voltage register 360 is used to store the membrane voltage of the neuron 301 at the previous moment.

[0101] First voltage register 350 is used to calculate the current membrane voltage based on input information and the membrane voltage at the previous moment. The specific input information is related to the neuron model implemented by neuron 301. The implementation method for calculating the current membrane voltage by first voltage register 350 will be described in detail later in conjunction with the specific neuron model and will not be repeated here. First voltage register 350 also transmits the current membrane voltage to second voltage register 360, so that neuron 301 can calculate the next membrane voltage at the next moment based on the current membrane voltage stored in second voltage register 360.

[0102] The comparator 370 stores a threshold voltage and is used to compare the membrane voltage output by the first voltage register 350 with the threshold voltage.

[0103] If the membrane voltage is less than the current threshold voltage, pulse generator 380 will not generate a pulse. The first voltage register 350 in the neuron continues to accumulate the membrane voltage based on the input information. If the membrane voltage is greater than or equal to the current threshold voltage, pulse generator 380 will generate a pulse and transmit the pulse to the next neuron connected to it.

[0104] Let's combine Figure 4 , a method of how neuron 301 implements at least two neuron models is described in detail.

[0105] Figure 4 FIG. 1 is a schematic flow chart of a method for implementing at least two neuron models in a neuron 301 according to an embodiment of the present application. Figure 4 As shown, the method includes steps 410-430, and steps 410-430 are described in detail below.

[0106] Step 410: Determine the neuron model that the neuron 301 is intended to implement.

[0107] Step 420: Determine configuration information according to the definition of the neuron model.

[0108] In the embodiment of the present application, configuration information can be determined based on the definition of the neuron model that the determined neuron 301 wants to implement and the unified differential equation group of the neuron. The configuration information includes a control signal for each switch in the neuron 301.

[0109] In the embodiment of the present application, based on Table 1, the states of the first switch, the second switch, the third switch, and the fourth switch can be selected according to different neuron models implemented by the neuron 301.

[0110] Table 1 Different neuron models correspond to different switching states

[0111]

[0112] In actual use, the controller 241 can enable the neuron 301 to implement at least two different neuron models according to the states of the first switch, the second switch, the third switch, and the fourth switch.

[0113] The first switch is in the 0 state, indicating that the switch is in the first position, so that the input terminal of the neuron 301 is connected to the input terminal of the first voltage register 350. The switch is in the 1 state, indicating that the switch is in the second position, so that the input terminal of the neuron 301 is connected to the current input module 310. It should be understood that the input terminal of the neuron 301 is used to input the input pulse of the neuron 301.

[0114] The second switch is in the 0 state, indicating that the switch is in the open state, so that the second voltage adjustment register 330 and the first voltage adjustment register 320 are not connected. The 1 state indicates that the switch is in the closed state, so that the second voltage adjustment register 330 and the first voltage adjustment register 320 are connected.

[0115] The third switch is in the 0 state, indicating that the switch is in the open state, so that the threshold adjustment module 340 and the first voltage register 350 are not connected. The 1 state indicates that the switch is in the closed state, so that the threshold adjustment module 340 and the first voltage register 350 are connected.

[0116] The fourth switch is in the 0 state, indicating that the switch is in the open state, so that the threshold adjustment module 340 and the second voltage register 360 are not connected. The 1 state indicates that the switch is in the closed state, so that the threshold adjustment module 340 and the second voltage register 360 are connected.

[0117] Referring to Table 1, if the first, second, third, and fourth switches are all in the 0 state, neuron 301 can implement the IF neuron model. If the first switch is in the 1 state and the remaining second, third, and fourth switches are in the 0 state, neuron 301 can implement the LIF neuron model. If the first and second switches are in the 1 state and the remaining third and fourth switches are in the 0 state, neuron 301 can implement the SRM neuron model.

[0118] If the third switch is in the 1 state, neuron 301 can implement a possible threshold-adjustable neuron model. If both the third switch and the fourth switch are in the 1 state, neuron 301 can implement another possible threshold-adjustable neuron model. This threshold-adjustable neuron model can be combined with the aforementioned IF neuron model, LIF neuron model, and SRM neuron model to form a threshold-adjustable IF neuron model, a threshold-adjustable LIF neuron model, a threshold-adjustable SRM neuron model, and so on. For details on the switch states for implementing the various aforementioned adjustable neuron models, please refer to the description in Table 1 and will not be repeated here.

[0119] Optionally, in some embodiments, amplifiers are further included between some registers in the neuron 301. The above configuration information also includes parameters in the amplifiers.

[0120] The parameters in the configuration information can be determined using formula (1)-formula (2).

[0121] In this application, the neuron model can be unified into the following differential equation model.

[0122]

[0123] Among them, I in Responding to input pulses from neuron 301;

[0124] I out The change in membrane voltage of the response neuron 301 after the pulse is generated;

[0125] I ad The change of the reaction threshold voltage;

[0126] V reflects the accumulation of membrane voltage on neuron 301.

[0127] (I in )` means I in The derivative of (I out )` means I out The derivative of (I ad )' indicates I ad The derivative of , (V)` represents the derivative of V.

[0128] In formula (1), the parameters on the right side of the equation are all determined by the neuron model. After selecting a certain neuron model, the parameters on the right side are uniquely determined (W i except). W i is the synaptic weight connecting the previous neuron and the current neuron, which is obtained by the SNN training algorithm.

[0129] After obtaining the neuron model, the membrane voltage V of the neuron can be calculated as follows:

[0130]

[0131] Among them, a0, a c , a k , a k,v , p1, p2, p3, p4 and other parameters are all substituted into e by formula (1) AΔt Calculated, A is the matrix in formula (1).

[0132] Step 430: The controller 241 configures the neuron 301 to implement multiple different neuron models according to the multiple configuration information.

[0133] In a first possible implementation, the controller 241 receives configuration information 1 and controls multiple switches in the neuron 301 according to the configuration information 1. The configuration information 1 indicates that the first switch, the second switch, the third switch, and the fourth switch are all controlled to be in the 0 state, so as to control the neuron 301 to implement the IF neuron model.

[0134] In this implementation, the inputs of the first voltage register 350 in the neuron 301 include the input terminal of the neuron 301, the first voltage adjustment register 320, and the second voltage register 360. The input terminal of the neuron 301 receives an input pulse at time t, the first voltage adjustment register 320 stores the voltage adjustment value of the neuron 301 at time t-1, and the second voltage register 360 stores the membrane voltage of the neuron 301 at time t-1.

[0135] The first voltage register 350 determines the membrane voltage of the neuron 301 at time t based on the input pulse of the neuron 301 at time t, the membrane voltage at time t-1, and the voltage adjustment value at time t-1. The time t-1 is the moment before time t.

[0136] It should be understood that the voltage adjustment value of the neuron 301 at time t-1 stored in the first voltage adjustment register 320 is transmitted at time t-1 by the second voltage adjustment register 330. The second voltage adjustment register 330 is used to determine the voltage adjustment value at time t-1 based on whether the pulse transmitter 380 in the neuron 301 emits a pulse at time t-1.

[0137] That is, if neuron 301 does not fire a pulse at time t-1, the output of pulse transmitter 380 is 0, the voltage adjustment value of neuron 301 at time t-1 is 0, and the membrane voltage of neuron 301 is not adjusted or reset, and the membrane voltage continues to accumulate at the next time. If neuron 301 fires a pulse at time t-1, the output of pulse transmitter 380 is 1, the voltage adjustment value of neuron 301 at time t-1 is not 0, and the membrane voltage of neuron 301 will be adjusted and reset after the previous pulse.

[0138] In a second possible implementation, the controller 241 receives configuration information 2 and controls multiple switches in the neuron 301 according to the configuration information 2. The configuration information 2 indicates that the first switch is controlled to be in the 1 state, and the remaining second switch, third switch, and fourth switch are all in the 0 state, so as to control the neuron 301 to implement the LIF neuron model.

[0139] In this implementation, the inputs of the first voltage register 350 in the neuron 301 include a current input module 310, a first voltage adjustment register 320, and a second voltage register 360. The first current input register 311 in the current input module 310 stores the input current of the neuron 301 at time t-1, the first voltage adjustment register 320 stores the voltage adjustment value of the neuron 301 at time t-1, and the second voltage register 360 stores the membrane voltage of the neuron 301 at time t-1.

[0140] The first voltage register 350 determines the membrane voltage of the neuron 301 at time t-1 according to the input current of the neuron 301 at time t-1, the membrane voltage at time t-1, and the voltage adjustment value at time t-1.

[0141] It should be understood that the input current of the neuron 301 at time t-1 stored in the first current input register 311 is transmitted at time t-1 by the second current input register 312. The second current input register 312 is used to determine the input current at time t-1 based on the input pulse of the neuron 301 at time t-1 and the input current at time t-2.

[0142] It should also be understood that the first current input register 311 stores the input current at time t-2 at time t-1.

[0143] In a third possible implementation, the controller 241 receives configuration information 3 and controls multiple switches in the neuron 301 according to the configuration information 3. The configuration information 3 indicates that the first switch and the second switch are controlled to be in the 1 state, and the remaining third switch and the fourth switch are all in the 0 state, so as to control the neuron 301 to implement the SRM neuron model.

[0144] In this implementation, the inputs of the first voltage register 350 in the neuron 301 include a current input module, a first voltage adjustment register 320, and a second voltage register 360. Specifically, the first current input register 311 in the current input module 310 stores the input current of the neuron 301 at time t-1, the first voltage adjustment register 320 stores the voltage adjustment value of the neuron 301 at time t-1, and the second voltage register 360 stores the membrane voltage of the neuron 301 at time t-1.

[0145] The first voltage register 350 determines the membrane voltage of the neuron 301 at time t-1 according to the input current of the neuron 301 at time t-1, the membrane voltage at time t-1, and the voltage adjustment value at time t-1.

[0146] It should be understood that the first voltage adjustment register 320 is connected to the second voltage adjustment register 330, and the voltage adjustment value of the neuron 301 at time t-1 stored in the first voltage adjustment register 320 is transmitted by the second voltage adjustment register 330 at time t-1. The second voltage adjustment register 330 is used to determine the voltage adjustment value at time t-1 based on whether the pulse transmitter 380 in the neuron 301 at time t-1 issues a pulse and the voltage adjustment value at time t-2.

[0147] It should also be understood that the first voltage adjustment register 320 stores the voltage adjustment value at time t-2 at time t-1.

[0148] In a fourth possible implementation, the controller 241 may be used to control the third switch to be in the 1 state, thereby realizing various neuron models with adjustable thresholds.

[0149] 1. The controller 241 controls the neuron 301 to implement an IF neuron model with adjustable threshold.

[0150] In one example, the controller 241 receives configuration information 4 and controls multiple switches in the neuron 301 according to the configuration information 4. The configuration information 4 indicates that the third switch is controlled to be in the 1 state, and the remaining first switch, second switch, and fourth switch are all in the 0 state, so as to control the neuron 301 to implement the IF1 neuron model with adjustable threshold.

[0151] In this implementation, the inputs of the first voltage register 350 in the neuron 301 include the input terminal of the neuron 301, the first voltage adjustment register 320, the second voltage register 360, and the threshold adjustment module 340. Specifically, the input terminal of the neuron 301 receives an input pulse at time t, the first voltage adjustment register 320 stores the voltage adjustment value of the neuron 301 at time t-1, the second voltage register 360 stores the membrane voltage of the neuron 301 at time t-1, and the first threshold adjustment register 341 in the threshold adjustment module 340 stores the threshold adjustment value of the neuron 301 at time t-1.

[0152] The first voltage register 350 determines the membrane voltage of the neuron 301 at time t based on the input pulse of the neuron 301 at time t, the membrane voltage at time t-1, and the voltage adjustment value at time t-1. The time t-1 is the moment before time t.

[0153] It should be understood that the threshold adjustment value of neuron 301 at time t-1 stored in first threshold adjustment register 341 is transmitted by second threshold adjustment register 342. The second threshold adjustment register 342 determines the threshold adjustment value at time t-1 based on whether the pulse transmitter 380 in neuron 301 emits a pulse.

[0154] In another example, the controller 241 receives configuration information 4′ and controls multiple switches in the neuron 301 according to the configuration information 4′. The configuration information 4′ instructs the third and fourth switches to be in the 1 state, and the remaining first and second switches to be in the 0 state, so as to control the neuron 301 to implement an IF2 neuron model with an adjustable threshold.

[0155] In this implementation, the inputs of the first voltage register 350 in the neuron 301 include the input terminal of the neuron 301, the first voltage adjustment register 320, the second voltage register 360, and the threshold adjustment module 340. The first voltage register 350 determines the membrane voltage of the neuron 301 at time t based on the input pulse of the neuron 301 at time t, the membrane voltage at time t-1, and the voltage adjustment value at time t-1. Time t-1 is the moment before time t.

[0156] The threshold adjustment value of neuron 301 at time t-1 stored in first threshold adjustment register 341 is transmitted at time t-1 by second threshold adjustment register 342. Second threshold adjustment register 342 determines the threshold adjustment value at time t-1 based on whether pulse transmitter 380 in neuron 301 emits a pulse and the threshold adjustment value at time t-2.

[0157] It should be understood that the first threshold adjustment register 341 stores the threshold adjustment value at time t-2 at time t-1.

[0158] 2. The controller 241 controls the neuron 301 to implement a LIF neuron model with adjustable threshold.

[0159] In one example, the controller 241 receives configuration information 5 and controls multiple switches in the neuron 301 according to the configuration information 5. The configuration information 5 indicates that the first and third switches are controlled to be in the 1 state, and the remaining second and fourth switches are controlled to be in the 0 state, so as to control the neuron 301 to implement the LIF1 neuron model with adjustable threshold.

[0160] In this implementation, the inputs of the first voltage register 350 in the neuron 301 include the current input module 310, the first voltage adjustment register 320, the second voltage register 360, and the threshold adjustment module 340. The first voltage register 350 determines the membrane voltage of the neuron 301 at time t-1 based on the input current of the neuron 301 at time t-1, the membrane voltage at time t-1, the voltage adjustment value at time t-1, and the threshold adjustment value at time t-1.

[0161] It should be understood that the threshold adjustment value of neuron 301 at time t-1 stored in first threshold adjustment register 341 is transmitted by second threshold adjustment register 342. The second threshold adjustment register 342 determines the threshold adjustment value at time t-1 based on whether the pulse transmitter 380 in neuron 301 emits a pulse.

[0162] In another example, the controller 241 receives configuration information 5′ and controls multiple switches in the neuron 301 according to the configuration information 5′. The configuration information 5′ instructs the first, third, and fourth switches to be in the 1 state and the second switch to be in the 0 state, so as to control the neuron 301 to implement the LIF2 neuron model with adjustable threshold.

[0163] In this implementation, the inputs of the first voltage register 350 in the neuron 301 include a current input module 310, a first voltage adjustment register 320, a second voltage register 360, and a threshold adjustment module 340. The first voltage register 350 determines the membrane voltage of the neuron 301 at time t-1 based on the input current of the neuron 301 at time t-1, the membrane voltage at time t-1, the voltage adjustment value at time t-1, and the threshold adjustment value at time t-1.

[0164] The threshold adjustment value of neuron 301 at time t-1 stored in first threshold adjustment register 341 is transmitted by second threshold adjustment register 342 at time t-1. Second threshold adjustment register 342 determines the threshold adjustment value at time t-1 based on whether pulse transmitter 380 in neuron 301 emits a pulse and the threshold adjustment value at time t-2.

[0165] 3. The controller 241 controls the neuron 301 to implement an SRM neuron model with adjustable threshold.

[0166] In one example, the controller 241 receives configuration information 6 and controls multiple switches in the neuron 301 according to the configuration information 6. The configuration information 6 indicates that the first switch, the second switch, and the third switch are all in the 1 state, and the fourth switch is in the 0 state, so as to control the neuron 301 to implement the SRM1 neuron model with adjustable threshold.

[0167] In this implementation, the inputs of the first voltage register 350 in the neuron 301 include a current input module, a first voltage adjustment register 320, a second voltage register 360, and a threshold adjustment module 340. The first voltage register 350 determines the membrane voltage of the neuron 301 at time t-1 based on the input current of the neuron 301 at time t-1, the voltage adjustment value of the membrane voltage at time t-1 at time t-1, and the threshold adjustment value at time t-1.

[0168] The threshold adjustment value of the neuron 301 at time t-1 stored in the first threshold adjustment register 341 is transmitted by the second threshold adjustment register 342. The second threshold adjustment register 342 determines the threshold adjustment value at time t-1 based on whether the pulse transmitter 380 in the neuron 301 emits a pulse.

[0169] In another example, the controller 241 receives configuration information 6′ and controls multiple switches in the neuron 301 according to the configuration information 6′. The configuration information 6′ instructs the first switch, the second switch, the third switch, and the fourth switch to be all in the 1 state, so as to control the neuron 301 to implement the SRM2 neuron model with adjustable thresholds.

[0170] The threshold adjustment value of neuron 301 at time t-1 stored in first threshold adjustment register 341 is transmitted by second threshold adjustment register 342 at time t-1. Second threshold adjustment register 342 determines the threshold adjustment value at time t-1 based on whether pulse transmitter 380 in neuron 301 emits a pulse and the threshold adjustment value at time t-2.

[0171] It should be noted that the above embodiment takes the implementation of the neuron model at time t as an example. In actual applications, neuron 301 can implement one neuron model at the above time t and another neuron model at time t1. Alternatively, it can implement one neuron model according to one configuration information at the above time t, or implement another neuron model according to another configuration information at time t. This application does not make specific limitations on this.

[0172] It should be understood that in the various embodiments of the present application, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0173] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0174] In the several embodiments provided herein, it should be understood that the spiking neural network embodiments described above are merely illustrative. For example, the division of units is merely a logical functional division, and actual implementations may employ alternative divisions, such as combining or integrating multiple units or components into another system, or omitting or disabling certain features. Furthermore, any coupling, direct coupling, or communication connection shown or discussed may be through an interface.

[0175] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the units may be selected to achieve the purpose of the solution of this embodiment according to actual needs.

[0176] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0177] If this function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method of each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, and other media that can store program code.

[0178] The above is only a specific embodiment of the present application, but the scope of protection of the present application is not limited to this. Any changes or substitutions that can be easily conceived by any person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.

Claims

1. A spiking neural network, characterized in that include: A neuron, wherein the neuron includes a plurality of registers and a plurality of switches, wherein each of the plurality of switches is used to control connectivity between some of the plurality of registers; The controller is used to control multiple switches in the neuron according to multiple configuration information respectively, so that the neuron implements at least two neuron models according to the information stored in the connected registers.

2. The spiking neural network according to claim 1, wherein The at least two neuron models include at least two of the following neuron models: a cumulative-spiking IF neuron model, a leaky cumulative-spiking LIF neuron model, a pulse response model SRM, and a neuron model with adjustable threshold voltage.

3. The spiking neural network according to claim 2, wherein: The at least two neuron models include the IF neuron model, wherein the neuron includes a first switch, a first voltage register, a second voltage register, and a first voltage adjustment register; the controller being configured to control the first switch to be in a first position according to first configuration information among the plurality of configuration information, wherein the first switch being in the first position indicates that an input end of the neuron is connected to an input end of the first voltage register, and the input end of the neuron is used to input an input pulse of the neuron; The first voltage adjustment register is used to store a voltage adjustment value of the neuron at time t-1, where the voltage adjustment value at time t-1 is determined based on whether the neuron emits a pulse at time t-1; The second voltage register is used to store the membrane voltage of the neuron at the time t-1; The first voltage register is used to determine the membrane voltage of the neuron at time t based on the input pulse of the neuron at time t, the membrane voltage at time t-1, and the voltage adjustment value at time t-1, wherein time t-1 is the moment before time t.

4. The spiking neural network according to claim 3, wherein: The at least two neuron models include a leakage accumulation and firing (LIF) neuron model, wherein the neuron includes a first switch, a first voltage register, a second voltage register, a first voltage adjustment register, and a current input module. The controller is further configured to control the first switch to be in a second position according to second configuration information among the plurality of configuration information, wherein the first switch being in the second position indicates that the input end of the current input module is connected to the input end of the neuron; The second voltage register is used to store the membrane voltage of the neuron at time t-1; The first voltage adjustment register is used to store the voltage adjustment value of the neuron at time t-1; The current input module is used to store the input current of the neuron at time t-1, where the input current at time t-1 is determined based on the input pulse of the neuron at time t-1 and the input current at time t-2; The first voltage register is used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, and the voltage adjustment value at time t-1.

5. The spiking neural network according to claim 4, wherein: The at least two neuron models further include an impulse response model SRM, and the neuron further includes a second voltage adjustment register and a second switch. The controller is further configured to control the first switch to be in the second position and the second switch to be in an off state according to third configuration information among the plurality of configuration information, wherein the off state of the second switch indicates that the second voltage adjustment register is connected to the first voltage adjustment register; the second voltage adjustment register being configured to adjust the voltage adjustment value of the neuron at time t-1 according to whether the neuron emits a pulse at time t-1 and the voltage adjustment value at time t-2, and to send the adjusted voltage adjustment value at time t-1 to the first voltage adjustment register; The first voltage adjustment register is further used to store the adjusted voltage adjustment value at time t-1; The first voltage register is further used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, and the adjusted voltage adjustment value at time t-1.

6. The spiking neural network according to claim 3, wherein: The at least two neuron models further include an IF neuron model with an adjustable first threshold voltage, wherein the neuron further includes a threshold adjustment module and a third switch. The controller is further configured to control the first switch to be in the first position and the third switch to be in an off state according to fourth configuration information among the plurality of configuration information, wherein the off state of the third switch indicates that the threshold adjustment module is connected to the first voltage register; The threshold adjustment module is configured to store a first threshold voltage of the neuron at time t-1, where the first threshold voltage at time t-1 is determined based on whether the neuron emits a pulse at time t-1 and the threshold voltage at time t-2; The first voltage register is further used to determine the membrane voltage of the neuron at time t based on the input pulse of the neuron at time t, the membrane voltage at time t-1, the voltage adjustment value at time t-1, and the first threshold voltage at time t-1.

7. The spiking neural network according to claim 6, wherein: The at least two neuron models further include an IF neuron model with a second adjustable threshold voltage, wherein the neuron further includes a fourth switch. the controller is further configured to control the first switch to be in the first position, the third switch to be in an off state, and the fourth switch to be in an off state according to fifth configuration information among the plurality of configuration information, wherein the off state of the fourth switch indicates that the threshold adjustment module is connected to the second voltage register; The threshold adjustment module is further configured to store a second threshold voltage of the neuron at time t-1, where the second threshold voltage at time t-1 is determined based on whether the neuron emits a pulse at time t-1, the threshold voltage at time t-2, and the membrane voltage at time t-1; The first voltage register is further used to determine the membrane voltage of the neuron at time t based on the input pulse of the neuron at time t, the membrane voltage at time t-1, the voltage adjustment value at time t-1, and the second threshold voltage at time t-1.

8. The spiking neural network according to claim 4, wherein: The at least two neuron models further include a LIF neuron model with an adjustable first threshold voltage, wherein the neuron further includes a threshold adjustment module and a third switch. The controller is further configured to control the first switch to be in the second position and the third switch to be in an off state according to sixth configuration information among the plurality of configuration information; The threshold adjustment module is used to store the first threshold voltage of the neuron at time t-1; The first voltage register is further used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, the voltage adjustment value at time t-1, and the first threshold voltage at time t-1.

9. The spiking neural network according to claim 8, wherein: The at least two neuron models further include a LIF neuron model with an adjustable second threshold voltage, and the neuron further includes a fourth switch. The controller is further configured to control the first switch to be in the first position, the third switch to be in an off state, and the fourth switch to be in an off state according to seventh configuration information among the plurality of configuration information; The threshold adjustment module is further configured to store a second threshold voltage of the neuron at time t-1; The first voltage register is further used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, the voltage adjustment value at time t-1, and the second threshold voltage at time t-1.

10. The spiking neural network according to claim 5, wherein: The at least two neuron models further include an SRM neuron model with an adjustable first threshold voltage, and the neuron further includes a threshold adjustment module and a third switch; The controller is further configured to control the first switch to be in the second position, the second switch to be in the off state, and the third switch to be in the off state according to eighth configuration information among the plurality of configuration information; The threshold adjustment module is used to store the first threshold voltage of the neuron at time t-1; The first voltage register is further used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, the adjusted voltage adjustment value at time t-1, and the first threshold voltage at time t-1.

11. The spiking neural network according to claim 10, wherein: The at least two neuron models further include a neuron model with a second adjustable threshold voltage, and the neuron further includes a fourth switch. The controller is further configured to control the first switch to be in the second position, control the second switch to be in an off state, control the third switch to be in an off state, and control the fourth switch to be in an off state according to ninth configuration information among the plurality of configuration information; The threshold adjustment module is further configured to store a second threshold voltage of the neuron at time t-1; The first voltage register is further used to determine the membrane voltage of the neuron at time t based on the input current of the neuron at time t-1, the membrane voltage at time t-1, the adjusted voltage adjustment value at time t-1, and the second threshold voltage at time t-1.

Citation Information

Patent Citations

  • SCNN reasoning device based on asynchronous circuit and PE unit, processor and computer equipment thereof

    CN110378469A

  • Dynamic spatial target selection

    US20150242746A1