ONNX stand for open Neural Network eXchange. its basically means you can save a standard machine learning model from one of the many machine learning frame works like PyTorch, Tensorflow, CNTK etc, and run them in your program
With VLML ONNX you can run models with NVIDIA Cuda-based GPU acceleration for high performance. Included in this package is an example of how to work with images at to apply style transfer. It uses VL.OpenCV to achieve this, but it could use other kinds of data input.
In general this is a very efficient way of inferring (evaluating) machine learning models, probably faster than running an equivalent model from within any particular framework.
It isn’t possible to retrain an ONNX model. For this you can use VLML and convert the model into an ONNX model.
recent version of vvvv Gamma
recent version of OpenCV
Nvidia GPU (GTX 7xx and upwards) with up-to-date drivers for CUDA.
There are planety of models you can try out here though I’m don’t know if they will all necessarily work with this WIP. If you have any questions about them this or VLML.
Got more to say on VLML but I’ll save that for the other thread
Crikey, Hello mate
I haven’t touched it in a little while but just finished a project so I can look over it again. Also looking to do a big old rewrite of a lot of machine learning stuff of which this will be one of the targets but, that’s some way off. But fixing this in Gamma/Beta is very possible in the short term.
You needing it?
Absolutely, I have it in mind, but till then this is an option to anticipate the conversion problem with Spans. I am wondering why it didn’t work in the vl context before when I was trying to cast it again to a mutable array… Anyways, I have to check now how to create static methods as generic. Thanks for mention it!
@Hadasi as @Elias pointed out this was the most optimal way to alter the code and get Tensor & DenseTensor (as generic) in one line
public static Tensor CreateTensor(int dims) where T : struct => new DenseTensor(dims);