6 #ifndef NNFACTORY_HPP_INCLUDE
7 #define NNFACTORY_HPP_INCLUDE
35 virtual std::shared_ptr<LocalNeuralNet>
createLocalNeuralNet(
const std::vector<std::shared_ptr<DenseLayer> > &layers)
const = 0;
Class to generate objects related to feed-forward neural nets, i.e. TensorOneD, TensorTwoD,...
Definition: NNFactory.hpp:21
virtual std::shared_ptr< DenseLayer > createDenseLayer(const TensorTwoD &weights, const TensorOneD &biases) const =0
Create a Dense Layer.
virtual ~NNFactory()=default
virtual TensorOneD createTensorOneD(const std::vector< double > &vals) const =0
Create a TensorOneD object.
virtual std::shared_ptr< LocalNeuralNet > createLocalNeuralNet(const std::vector< std::shared_ptr< DenseLayer > > &layers) const =0
Create a LocalNeuralNet.
static std::unique_ptr< NNFactory > make_unique()
Returns a unique pointer to a concrete object constructed using the underlying implementation.
Definition: NNFactory.cpp:14
virtual TensorTwoD createTensorTwoD(const std::vector< std::vector< double > > &vals) const =0
Create a TensorTwoD object.
static std::shared_ptr< NNFactory > make_shared()
Returns a shared pointer to a concrete object constructed using the underlying implementation.
Definition: NNFactory.cpp:19
Class to store and perform operations on 1D Tensors, aka vectors, suitable for use in feed-forward ne...
Definition: TensorOneD.hpp:21
Class to manage data and operations related to 2D Tensors required for neural net inference.
Definition: TensorTwoD.hpp:22
Definition: Accumulator.cpp:12