Kaspersky Neuromorphic Platform  1.0.0
API Reference
Loading...
Searching...
No Matches
neuron_parameters_generators.h
Go to the documentation of this file.
1
20#pragma once
21
22#include <knp/core/population.h>
23
24#include <cinttypes>
25#include <optional>
26#include <random>
27
28
33{
34
39{
40
48template <typename NeuronType, template <typename...> class Container>
50 const Container<typename core::Population<NeuronType>::NeuronParameters>& container)
51{
52 return [&container](size_t index) -> std::optional<typename core::Population<NeuronType>::NeuronParameters>
53 { return container[index]; };
54}
55
56
63template <typename NeuronType>
65{
66public:
70 MakeRandom() : mt_(std::random_device()()), dist_(0, 255) {}
71
78 {
80 for (size_t i = 0; i < sizeof(params); ++i) reinterpret_cast<uint8_t*>(&params)[i] = dist_(mt_);
81 return params;
82 }
83
84private:
85 std::mt19937 mt_;
86 std::uniform_int_distribution<int> dist_;
87};
88
89
95template <typename NeuronType>
97{
98 return [](size_t index) -> std::optional<typename core::Population<NeuronType>::NeuronParameters>
100}
101
102
109template <typename NeuronType>
111 const typename core::Population<NeuronType>::NeuronParameters source_neuron)
112{
113 return [source_neuron](size_t index) -> std::optional<typename core::Population<NeuronType>::NeuronParameters>
114 { return source_neuron; };
115}
116
117} // namespace neurons_generators
118} // namespace knp::framework::population
neuron_traits::neuron_parameters< NeuronType > NeuronParameters
Neuron parameters and their values for the specified neuron type.
Definition population.h:59
std::function< std::optional< NeuronParameters >(size_t index)> NeuronGenerator
Type of the neuron generator.
Definition population.h:65
core::Population< NeuronType >::NeuronParameters operator()(size_t index)
Call operator.
Namespace for generators of neurons with specific parameters.
core::Population< NeuronType >::NeuronGenerator from_container(const Container< typename core::Population< NeuronType >::NeuronParameters > &container)
Generate neurons from a container with parameter values.
core::Population< NeuronType >::NeuronGenerator make_default()
Generate neurons with default neuron parameter values.
core::Population< NeuronType >::NeuronGenerator make_clone(const typename core::Population< NeuronType >::NeuronParameters source_neuron)
Generate neurons which parameter values are cloned from a specified neuron.
Namespace for framework population routines.
Definition creators.h:35
General population interface.