Open 3D Engine MachineLearning Gem API Reference 24.09.2
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
MachineLearning::MultilayerPerceptron Class Reference

This is a basic multilayer perceptron neural network capable of basic training and feed forward operations. More...

#include <MultilayerPerceptron.h>

Inherits MachineLearning::INeuralNetwork.

Public Member Functions

 AZ_RTTI (MultilayerPerceptron, "{E12EF761-41A5-48C3-BF55-7179B280D45F}", INeuralNetwork)
 
 MultilayerPerceptron (const MultilayerPerceptron &)
 
 MultilayerPerceptron (AZStd::size_t activationCount)
 
MultilayerPerceptronoperator= (const MultilayerPerceptron &)
 
MultilayerPerceptronoperator= (const ModelAsset &)
 
void AddLayer (AZStd::size_t layerDimensionality, ActivationFunctions activationFunction=ActivationFunctions::ReLU)
 Adds a new layer to the model.
 
LayerGetLayer (AZStd::size_t layerIndex)
 Retrieves a specific layer from the model, this is not thread safe and should only be used during unit testing to validate model parameters.
 
AZStd::string GetName () const override
 
AZStd::string GetAssetFile (AssetTypes assetType) const override
 Returns the file where model parameters are stored.
 
AZStd::size_t GetInputDimensionality () const override
 Returns the number of input neurons the model supports.
 
AZStd::size_t GetOutputDimensionality () const override
 Returns the number of output neurons the model supports.
 
AZStd::size_t GetLayerCount () const override
 Returns the total number of layers in the network.
 
AZ::MatrixMxN GetLayerWeights (AZStd::size_t layerIndex) const override
 Returns the weight matrix for the requested layer.
 
AZ::VectorN GetLayerBiases (AZStd::size_t layerIndex) const override
 Returns the weight matrix for the requested layer.
 
AZStd::size_t GetParameterCount () const override
 Returns the total number of parameters in the neural network.
 
IInferenceContextPtr CreateInferenceContext () override
 
ITrainingContextPtr CreateTrainingContext () override
 
const AZ::VectorN * Forward (IInferenceContextPtr context, const AZ::VectorN &activations) override
 Performs a basic feed-forward operation to compute the output from a set of activation values.
 
void Reverse (ITrainingContextPtr context, LossFunctions lossFunction, const AZ::VectorN &activations, const AZ::VectorN &expected) override
 Accumulates the loss gradients given a loss function, an activation vector and a corresponding label vector.
 
void GradientDescent (ITrainingContextPtr context, float learningRate) override
 Performs a gradient descent step and resets all gradient accumulators to zero.
 
bool LoadModel () override
 Loads the current model parameters from the associated asset file.
 
bool SaveModel () override
 Saves the current model parameters to the associated asset file.
 
- Public Member Functions inherited from MachineLearning::INeuralNetwork
 AZ_RTTI (INeuralNetwork, "{64E5B5B1-4A7D-489D-9A29-D9510BB7E17A}")
 
 INeuralNetwork (INeuralNetwork &&)=default
 
 INeuralNetwork (const INeuralNetwork &)=default
 
INeuralNetworkoperator= (INeuralNetwork &&)=default
 
INeuralNetworkoperator= (const INeuralNetwork &)=default
 
void add_ref ()
 
void release ()
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 

Friends

class MultilayerPerceptronEditorComponent
 

Detailed Description

This is a basic multilayer perceptron neural network capable of basic training and feed forward operations.

Member Function Documentation

◆ CreateInferenceContext()

IInferenceContextPtr MachineLearning::MultilayerPerceptron::CreateInferenceContext ( )
overridevirtual

Reimplemented from MachineLearning::INeuralNetwork.

◆ CreateTrainingContext()

ITrainingContextPtr MachineLearning::MultilayerPerceptron::CreateTrainingContext ( )
overridevirtual

Reimplemented from MachineLearning::INeuralNetwork.

◆ Forward()

const AZ::VectorN * MachineLearning::MultilayerPerceptron::Forward ( IInferenceContextPtr context,
const AZ::VectorN & activations )
overridevirtual

Performs a basic feed-forward operation to compute the output from a set of activation values.

Reimplemented from MachineLearning::INeuralNetwork.

◆ GetAssetFile()

AZStd::string MachineLearning::MultilayerPerceptron::GetAssetFile ( AssetTypes assetType) const
overridevirtual

Returns the file where model parameters are stored.

Reimplemented from MachineLearning::INeuralNetwork.

◆ GetInputDimensionality()

AZStd::size_t MachineLearning::MultilayerPerceptron::GetInputDimensionality ( ) const
overridevirtual

Returns the number of input neurons the model supports.

Reimplemented from MachineLearning::INeuralNetwork.

◆ GetLayerBiases()

AZ::VectorN MachineLearning::MultilayerPerceptron::GetLayerBiases ( AZStd::size_t layerIndex) const
overridevirtual

Returns the weight matrix for the requested layer.

Reimplemented from MachineLearning::INeuralNetwork.

◆ GetLayerCount()

AZStd::size_t MachineLearning::MultilayerPerceptron::GetLayerCount ( ) const
overridevirtual

Returns the total number of layers in the network.

Reimplemented from MachineLearning::INeuralNetwork.

◆ GetLayerWeights()

AZ::MatrixMxN MachineLearning::MultilayerPerceptron::GetLayerWeights ( AZStd::size_t layerIndex) const
overridevirtual

Returns the weight matrix for the requested layer.

Reimplemented from MachineLearning::INeuralNetwork.

◆ GetName()

AZStd::string MachineLearning::MultilayerPerceptron::GetName ( ) const
overridevirtual

INeuralNetwork interface

Reimplemented from MachineLearning::INeuralNetwork.

◆ GetOutputDimensionality()

AZStd::size_t MachineLearning::MultilayerPerceptron::GetOutputDimensionality ( ) const
overridevirtual

Returns the number of output neurons the model supports.

Reimplemented from MachineLearning::INeuralNetwork.

◆ GetParameterCount()

AZStd::size_t MachineLearning::MultilayerPerceptron::GetParameterCount ( ) const
overridevirtual

Returns the total number of parameters in the neural network.

Reimplemented from MachineLearning::INeuralNetwork.

◆ GradientDescent()

void MachineLearning::MultilayerPerceptron::GradientDescent ( ITrainingContextPtr context,
float learningRate )
overridevirtual

Performs a gradient descent step and resets all gradient accumulators to zero.

Reimplemented from MachineLearning::INeuralNetwork.

◆ LoadModel()

bool MachineLearning::MultilayerPerceptron::LoadModel ( )
overridevirtual

Loads the current model parameters from the associated asset file.

Reimplemented from MachineLearning::INeuralNetwork.

◆ Reflect()

static void MachineLearning::MultilayerPerceptron::Reflect ( AZ::ReflectContext * context)
static

AzCore Reflection.

Parameters
contextreflection context

◆ Reverse()

void MachineLearning::MultilayerPerceptron::Reverse ( ITrainingContextPtr context,
LossFunctions lossFunction,
const AZ::VectorN & activations,
const AZ::VectorN & expected )
overridevirtual

Accumulates the loss gradients given a loss function, an activation vector and a corresponding label vector.

Reimplemented from MachineLearning::INeuralNetwork.

◆ SaveModel()

bool MachineLearning::MultilayerPerceptron::SaveModel ( )
overridevirtual

Saves the current model parameters to the associated asset file.

Reimplemented from MachineLearning::INeuralNetwork.


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