Machine Learning

The machine learning (ML) plugin contains all generic algorithms related to the execution of machine learning models (in particular neural networks) in the ImFusion software. It also adds extra functionalities related to pre- and post-processing of models input and output, data augmentation, image sampling, etc.

This plugin contains the main pieces of the machine learning framework but is not self-sufficient. In order to execute ML models, additional plugins that natively integrate external frameworks are required. This can be done either in C++ or in Python (provided you have the imfusion-sdk python package). In either case, the resulting plugin will be available to the ImFusionSuite/SDK. See the page Machine Learning Model for more details.

The following ML frameworks are currently supported for C++ development:

Framework

Windows

Linux

MacOS Arm

Torch

Yes: CPU, CUDA

Yes: CPU, CUDA

Yes: CPU, MPS

ONNX Runtime

Yes: CPU, CUDA, DirectML

Yes: CPU, CUDA

No

TensorRT

Yes

Yes

No

Note

Previous versions of the ImFusion Suite might include CaffePlugin, TensorFlowPlugin or TOMAATPlugin; they are no longer supported.

In Python, we currently offer implementations for the following frameworks as part of the imfusion-sdk package:

Note

The imfusion-sdk does not ship the pytorch, onnxruntime, coreml and so on. In order to use the corresponding framework, you need to install it (i.e. with pip). In this sense, we do not specify which device is supported since this depends on the python package flavor which is installed (i.e. torch-gpu or onnxruntime-silicon and so on).

The main algorithm of the ML plugin is Run MachineLearning Model. The Operations Sequence algorithm is also useful to check the pre- and post-processing of a model. All other algorithms are considered experimental or internal.