Kaspersky Neuromorphic Platform uses the SONATA
format to describe the topology of the neural network.
In the SONATA
format, the neural network is represented as a graph consisting of vertices corresponding to neurons and edges connecting the graph vertices and corresponding to synapses. The types of the corresponding populations and projections are assigned to neurons and synapses. The settings assigned to neuron or synapse types are automatically assigned to all neurons or synapses of these types. In addition, the attributes that define various neural network aspects, such as position, type, and model parameters, can be assigned to neurons, synapses, and their types.
A neuron population consists of one or several groups of neurons with a uniform tabular structure. The populations are serialized into HDF5 files and linked together using a CSV file describing the neuron types and the attributes applicable to these types. The groups of neurons are represented as the groups of HDF5 files containing data sets. The lengths of these data sets correspond to the number of neurons in the groups. Data in HDF5 files is stored in binary form.
Similar to neurons, synapses are defined by projections stored in HDF5 files. These files describe the attributes of each synapse. A synapse projection consists of one or several groups of synapses with a uniform tabular structure. Each HDF5 file is associated with a CSV file that defines the synapse types and attributes that apply to these types of synapses.
The figure below shows a diagram for loading a neural network object from the SONATA format and saving the network topology in the SONATA format.
Loading and saving a neural network