modelEvaluateSimpleFeedForwardNeuralNetwork

Extends from BaseClasses.BaseFeedForwardNeuralNet.

Information

This is a specialized version of the EvaluateGenericNeuralNetwork. It can be used for neural networks which use several scalar inputs and outputs. The user has to create the wanted inputs and has to connect them to the input of the block. This input has the same shape [batchSize, numberOfInputs] of the input used in the tensorflow model. The individual input have to be fed into the last dimension. A batch size can be used simultaniously calculation.

The example PipeLocalHeatTransfer_tflite uses this block.

TensorFlow Lite FlexOps

To use FlexOps with the TensorFlow Lite runtime, additional dynamic libraries must be provided in the SMArtInt library resources. Follow the steps below:

  1. Copy the appropriate FlexOps library into the corresponding platform folder (win64 or linux64) inside the Resources Library folder:
    • Windows: tensorflowlite_flex.dll
    • Linux: libtensorflowlite_flex.so
  2. Activate TensorFlow Lite FlexOps usage in the model parameter dialog.

CUDA GPU Support for ONNX Runtime

To use ONNX Runtime with GPU acceleration, CUDA must be installed on the operating system (tested with CUDA version 13.0), and a CUDA-compatible GPU must be available. In addition, the required ONNX Runtime GPU provider libraries must be provided in the SMArtInt library resources. Follow the steps below:

  1. Download the ONNX Runtime build with GPU support from:
    ONNX Runtime v1.23.2 Release
  2. Select and extract the appropriate package for your operating system:
    • Windows: onnxruntime-win-x64-gpu-1.23.2.zip
    • Linux: onnxruntime-linux-x64-gpu-1.23.2.tgz
  3. Copy the required provider libraries into the corresponding platform folder (win64 or linux64) inside the Resources Library folder:
    • onnxruntime_providers_cuda.dll / .so
    • onnxruntime_providers_shared.dll / .so
  4. Activate GPU usage in the model parameter dialog.

Parameters

TypeNameDefaultDescription
IntegernInputElements (from BaseNeuralNet)product(inputSizes)
IntegernOutputElements (from BaseNeuralNet)product(outputSizes)
Selected Model
StringpathToAIModel (from BaseNeuralNet)""Choose path to AI model
Tensor sizing
IntegerinputDimensions (from BaseNeuralNet)1Number of input dimension
IntegerinputSizes (from BaseNeuralNet){1}Vector with size of tensor in each dimension
IntegeroutputDimensions (from BaseNeuralNet)1Number of output dimension
IntegeroutputSizes (from BaseNeuralNet){1}Vector with size of tensor in each dimension
RNN Timing Settings
Booleanstateful (from BaseNeuralNet)falseActivate state handling for RNN with state in-/outputs
RealsamplePeriod (from BaseNeuralNet)0Fixed sample period for RNNs
Advanced › Performance
IntegernumberOfThreads (from BaseNeuralNet)1Number of threads used for inference (0: Number of CPU cores)
Advanced › TFLite
BooleanuseFlexOps (from BaseNeuralNet)falseActivate to allow Tensorflow Flex Ops for tflite models
Advanced › ONNX
BooleanuseGPU (from BaseNeuralNet)falseActivate to use a compatible CUDA GPU for inference
IntegergpuDeviceID (from BaseNeuralNet)0CUDA device ID
SMArtInt.Internal.Types.ExecutionModeexecutionMode (from BaseNeuralNet)SMArtInt.Internal.Types.ExecutionMode.SequentialExecution mode for run inference
Input/Output Sizing
IntegernumberOfInputs (from BaseFeedForwardNeuralNet)1Number of Real Inputs
IntegernumberOfOutputs (from BaseFeedForwardNeuralNet)1Number of Real Outputs
IntegerbatchSize (from BaseFeedForwardNeuralNet)1Number of parallel batched simulations

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealInput[batchSize,numberOfInputs]u
Modelica.Blocks.Interfaces.RealOutput[batchSize,numberOfOutputs]y

Components

TypeNameDefaultDescription
Internal.Utilities.Dependencies.OnnxGpuDependenciesonnxGpuDependencies (from BaseNeuralNet)
Internal.Utilities.Dependencies.TFFlexOpsDependenciestFFlexOpsDependencies (from BaseNeuralNet)
Internal.Utilities.RunInferenceFlatInputrunInference (from BaseGenericNeuralNet)
Internal.Utilities.SubModels.Array2DFlatteningModelarray2DFlatteningModel (from BaseFeedForwardNeuralNet)
Internal.Utilities.SubModels.Array2DDeflatteningModelarray2DDeflatteningModel (from BaseFeedForwardNeuralNet)