37 lines
703 B
C++
37 lines
703 B
C++
#pragma once
|
|
|
|
#include <fstream>
|
|
#include <vector>
|
|
|
|
template<class T>
|
|
class NeuronsNetworkBase
|
|
{
|
|
double rate_train_ = 0.01;
|
|
std::vector<double> masses;
|
|
|
|
protected:
|
|
virtual double activation(double x) = 0;
|
|
|
|
double& operator[](size_t index)
|
|
{
|
|
return masses[index];
|
|
}
|
|
|
|
public:
|
|
NeuronsNetworkBase(size_t count_neurons, double rate_train):
|
|
rate_train_(rate_train)
|
|
{
|
|
masses.resize(count_neurons);
|
|
}
|
|
virtual ~NeuronsNetworkBase() = default;
|
|
|
|
virtual void train(double error, const T& data) = 0;
|
|
|
|
virtual double call(const T& data) = 0;
|
|
|
|
double get_rate_train() const
|
|
{
|
|
return rate_train_;
|
|
}
|
|
};
|