ML functions
 
Loading...
Searching...
No Matches
TorchDNN_Multi Class Reference

A class that implements a multi-layer deep neural network using PyTorch, inheriting from MLFunction. More...

#include <functions.h>

Inheritance diagram for TorchDNN_Multi:
MLFunction

Public Member Functions

 TorchDNN_Multi (std::vector< float * > weights, std::vector< float * > bias, std::vector< int > dimensions)
 Constructor that initializes the neural network with weights, biases, and layer dimensions.
 
void apply (const SelectivityVector &rows, std::vector< VectorPtr > &args, const TypePtr &type, exec::EvalCtx &context, VectorPtr &output) const override
 Applies the multi-layer neural network to the input array.
 
float * getTensor () const override
 Returns the tensor associated with this function.
 
const std::vector< float * > & getWeights () const
 Returns the weights of the neural network.
 
const std::vector< float * > & getBias () const
 Returns the biases of the neural network.
 
- Public Member Functions inherited from MLFunction
virtual ~MLFunction ()=default
 Virtual destructor.
 
virtual std::vector< int > getDims ()
 Returns the dimensions of the function.
 
virtual std::string getFuncName ()
 Returns the name of the function.
 
virtual int getNumDims ()
 Returns the number of dimensions of the function.
 
virtual CostEstimate getCost (std::vector< int > inputDims)
 Estimates the computational cost of applying the function.
 

Static Public Member Functions

static std::vector< std::shared_ptr< exec::FunctionSignature > > signatures ()
 Returns the function signatures supported by this class.
 

Additional Inherited Members

- Protected Member Functions inherited from MLFunction
double getWeightedCost (std::string name, float cost)
 Calculates the weighted cost of the function.
 
std::vector< double > getCoefficientVector (std::string name)
 Retrieves the cost coefficients for the function.
 
- Protected Attributes inherited from MLFunction
std::vector< int > dims
 Dimensions of the function.
 

Detailed Description

A class that implements a multi-layer deep neural network using PyTorch, inheriting from MLFunction.

This class provides functionality to apply a multi-layer neural network with ReLU activations and softmax output.

Constructor & Destructor Documentation

◆ TorchDNN_Multi()

TorchDNN_Multi::TorchDNN_Multi ( std::vector< float * > weights,
std::vector< float * > bias,
std::vector< int > dimensions )
inline

Constructor that initializes the neural network with weights, biases, and layer dimensions.

Parameters
weightsA vector of pointers to weight matrices for each layer.
biasA vector of pointers to bias vectors for each layer.
dimensionsA vector containing the dimensions of the neural network layers.

Member Function Documentation

◆ apply()

void TorchDNN_Multi::apply ( const SelectivityVector & rows,
std::vector< VectorPtr > & args,
const TypePtr & type,
exec::EvalCtx & context,
VectorPtr & output ) const
inlineoverride

Applies the multi-layer neural network to the input array.

This method processes the input array, applies the neural network, and stores the result in the output vector.

Parameters
rowsA SelectivityVector specifying the rows to process.
argsA vector of input arguments (e.g., the input array).
typeThe type of the output vector.
contextThe execution context.
outputThe output vector where the result will be stored.

◆ getBias()

const std::vector< float * > & TorchDNN_Multi::getBias ( ) const
inline

Returns the biases of the neural network.

Returns
A vector of pointers to bias vectors.

◆ getTensor()

float * TorchDNN_Multi::getTensor ( ) const
inlineoverridevirtual

Returns the tensor associated with this function.

Returns
A pointer to an empty float array (no weights for TorchDNN_Multi).

Implements MLFunction.

◆ getWeights()

const std::vector< float * > & TorchDNN_Multi::getWeights ( ) const
inline

Returns the weights of the neural network.

Returns
A vector of pointers to weight matrices.

◆ signatures()

static std::vector< std::shared_ptr< exec::FunctionSignature > > TorchDNN_Multi::signatures ( )
inlinestatic

Returns the function signatures supported by this class.

Returns
A vector of shared pointers to FunctionSignature objects.

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