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:
-
Copy the appropriate FlexOps library into the corresponding platform folder
(
win64orlinux64) inside the Resources Library folder:- Windows:
tensorflowlite_flex.dll - Linux:
libtensorflowlite_flex.so
- Windows:
- 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:
-
Download the ONNX Runtime build with GPU support from:
ONNX Runtime v1.23.2 Release -
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
- Windows:
-
Copy the required provider libraries into the corresponding platform folder
(
win64orlinux64) inside the Resources Library folder:onnxruntime_providers_cuda.dll/.soonnxruntime_providers_shared.dll/.so
- Activate GPU usage in the model parameter dialog.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | nInputElements (from BaseNeuralNet) | product(inputSizes) | |
| Integer | nOutputElements (from BaseNeuralNet) | product(outputSizes) | |
| Selected Model | |||
| String | pathToAIModel (from BaseNeuralNet) | "" | Choose path to AI model |
| Tensor sizing | |||
| Integer | inputDimensions (from BaseNeuralNet) | 1 | Number of input dimension |
| Integer | inputSizes (from BaseNeuralNet) | {1} | Vector with size of tensor in each dimension |
| Integer | outputDimensions (from BaseNeuralNet) | 1 | Number of output dimension |
| Integer | outputSizes (from BaseNeuralNet) | {1} | Vector with size of tensor in each dimension |
| RNN Timing Settings | |||
| Boolean | stateful (from BaseNeuralNet) | false | Activate state handling for RNN with state in-/outputs |
| Real | samplePeriod (from BaseNeuralNet) | 0 | Fixed sample period for RNNs |
| Advanced › Performance | |||
| Integer | numberOfThreads (from BaseNeuralNet) | 1 | Number of threads used for inference (0: Number of CPU cores) |
| Advanced › TFLite | |||
| Boolean | useFlexOps (from BaseNeuralNet) | false | Activate to allow Tensorflow Flex Ops for tflite models |
| Advanced › ONNX | |||
| Boolean | useGPU (from BaseNeuralNet) | false | Activate to use a compatible CUDA GPU for inference |
| Integer | gpuDeviceID (from BaseNeuralNet) | 0 | CUDA device ID |
| SMArtInt.Internal.Types.ExecutionMode | executionMode (from BaseNeuralNet) | SMArtInt.Internal.Types.ExecutionMode.Sequential | Execution mode for run inference |
| Input/Output Sizing | |||
| Integer | numberOfInputs (from BaseFeedForwardNeuralNet) | 1 | Number of Real Inputs |
| Integer | numberOfOutputs (from BaseFeedForwardNeuralNet) | 1 | Number of Real Outputs |
| Integer | batchSize (from BaseFeedForwardNeuralNet) | 1 | Number of parallel batched simulations |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.RealInput[batchSize,numberOfInputs] | u | ||
| Modelica.Blocks.Interfaces.RealOutput[batchSize,numberOfOutputs] | y |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Internal.Utilities.Dependencies.OnnxGpuDependencies | onnxGpuDependencies (from BaseNeuralNet) | ||
| Internal.Utilities.Dependencies.TFFlexOpsDependencies | tFFlexOpsDependencies (from BaseNeuralNet) | ||
| Internal.Utilities.RunInferenceFlatInput | runInference (from BaseGenericNeuralNet) | ||
| Internal.Utilities.SubModels.Array2DFlatteningModel | array2DFlatteningModel (from BaseFeedForwardNeuralNet) | ||
| Internal.Utilities.SubModels.Array2DDeflatteningModel | array2DDeflatteningModel (from BaseFeedForwardNeuralNet) |