MagmaDNN  1.0
c++NeuralNetworkFramework
magmadnn::model::NeuralNetwork< T > Class Template Reference
Inheritance diagram for magmadnn::model::NeuralNetwork< T >:
Collaboration diagram for magmadnn::model::NeuralNetwork< T >:

Public Member Functions

 NeuralNetwork (std::vector< layer::Layer< T > *> layers, optimizer::loss_t loss_func, optimizer::optimizer_t optimizer, nn_params_t params)
 
 NeuralNetwork (std::vector< layer::Layer< T > *> layers, optimizer::loss_t loss_func, optimizer::Optimizer< T > *optim, nn_params_t params)
 
virtual magmadnn_error_t fit (Tensor< T > *x, Tensor< T > *y, metric_t &metric_out, bool verbose=false)
 
virtual Tensor< T > * predict (Tensor< T > *sample)
 
virtual unsigned int predict_class (Tensor< T > *sample)
 
virtual std::vector< layer::Layer< T > * > get_layers ()
 
- Public Member Functions inherited from magmadnn::model::Model< T >
 Model ()
 
virtual double get_accuracy ()
 
virtual double get_loss ()
 
virtual double get_training_time ()
 
virtual std::string get_name ()
 

Protected Attributes

std::vector< layer::Layer< T > * > layers
 
optimizer::loss_t loss_func
 
optimizer::optimizer_t optimizer
 
nn_params_t model_params
 
op::Operation< T > * network_input_op_ptr
 
op::Operation< T > * network_output_op_ptr
 
Tensor< T > * network_input_tensor_ptr
 
Tensor< T > * network_output_tensor_ptr
 
op::Operation< T > * ground_truth_op_ptr
 
Tensor< T > * ground_truth_tensor_ptr
 
default_learning_rate = (T) 0.05
 
std::vector< op::Operation< T > * > _vars
 
op::Operation< T > * _obj
 
Tensor< T > * _obj_tensor_ptr
 
optimizer::Optimizer< T > * optim
 
- Protected Attributes inherited from magmadnn::model::Model< T >
std::string _name
 
metric_t _last_training_metric
 

Constructor & Destructor Documentation

◆ NeuralNetwork() [1/2]

template<typename T >
magmadnn::model::NeuralNetwork< T >::NeuralNetwork ( std::vector< layer::Layer< T > *>  layers,
optimizer::loss_t  loss_func,
optimizer::optimizer_t  optimizer,
nn_params_t  params 
)

Constructs a neural network with the given parameters.

Parameters
layersa vector of the layers comprising the network.
loss_funca loss_t enumerant describing the loss function to use at the end of the network.
optimizera optimizer_t enumerant describing the optimizer to use in training.
paramsa set of neural network parameters.

◆ NeuralNetwork() [2/2]

template<typename T >
magmadnn::model::NeuralNetwork< T >::NeuralNetwork ( std::vector< layer::Layer< T > *>  layers,
optimizer::loss_t  loss_func,
optimizer::Optimizer< T > *  optim,
nn_params_t  params 
)

Constructs a neural network. Allows you to supply custom optimizer.

Parameters
layersa vector of the layers comprising the network.
loss_funca loss_t enumerant describing the loss function to use at the end of the network.
optimOptimizer<T> that will be used to optimize the network
paramsa set of neural network parameters.

Member Function Documentation

◆ fit()

template<typename T >
magmadnn_error_t magmadnn::model::NeuralNetwork< T >::fit ( Tensor< T > *  x,
Tensor< T > *  y,
metric_t metric_out,
bool  verbose = false 
)
virtual

Trains this neural network using x and y. The batch size and epochs are used from the model parameters given during construction. If verbose, then training info is printed periodically.

Parameters
xindependent data
yground truth one-hot encoded data
metric_out[out] metric to write training metrics in
verboseif true, run in verbose mode
Returns
magmadnn_error_t 0 on success

Implements magmadnn::model::Model< T >.

◆ predict()

template<typename T >
Tensor< T > * magmadnn::model::NeuralNetwork< T >::predict ( Tensor< T > *  sample)
virtual

return a one-hot encoded output of the network on this sample

Parameters
samplea single sample
Returns
Tensor<T>* one-hot encoded prediction

Implements magmadnn::model::Model< T >.

Here is the call graph for this function:

◆ predict_class()

template<typename T >
unsigned int magmadnn::model::NeuralNetwork< T >::predict_class ( Tensor< T > *  sample)
virtual

This is equivalent to math::argmax(predict(sample)), where the one-hot encoded predict value is used.

Parameters
sample
Returns
unsigned int the index of the predicted class.

Implements magmadnn::model::Model< T >.


The documentation for this class was generated from the following files: