Nuget - Accord Framework

I am trying to leverage the Accord Framework on Nuget in Gamma. From my understanding, the nuget packages sometimes need a fair bit of work to get to operate in Gamma. I was able to get far with the workshop videos on how to approach this. Currently, I’m not getting any results from a TSNE setup. TSNE is a dimensionality reduction technique in the Accord Framework.

Would love some pointers. I suspect the “transform” node requires an input that I don’t know what might go there. I uploaded some screenshots and the file.



TSNE Test 2.vl (10.9 KB)

HI @shaobsh,

I did tsne quite a while ago with an older version of vl, before Gamma, so it’d probably be broken if I try to run it on any version of vvvv made in the last 4 years. You looks like you’re on the right track.

A MutableArray.Create node will do the job for the transform. Put it in the create operation, place a pad after it, and connect the pad to that transform input. Then when the result arrives it can be retrieved from the pad.

MutableArray Creation

The other important problem you is how long it takes TSNE to return a result. The Cache is only calculating the result for one frame when it could take over 30 seconds (depending on your dataset) to calculate the result. I can’t remember which operation actually triggers the calculation, its probably the transform node.
The setup of the operation can reasonably be done in caches, the calculation is probably best handled in a reactive region to treat it as a task.

Make it observable

Hope this helps

1 Like

Thanks @Hadasi for the thorough response! This is really helpful and I feel like I’m getting closer.

I’m at a point now where the transform node is throwing an error message "Index was outside the bounds of the array. I was able to get to a message that required me to “Set Perplexity” to a lower range for this dataset.

I’ve tried different reactive regions but to no avail.
I’m looking into the documentation at TSNE Accord for figuring this out.

Thanks! Let me know if you see anything glaringly wrong in my setup.

While I don’t think a cache will be a good idea in the looking run, if it helps you with debugging for now, all good.

Don’t connect the create mutable array node via the cache region edge. Maybe none of them should be. It’s possible that the transform is triggered before the data has loaded. Instead, try putting the SetPerplexity node outside of the cache node. It can be in the create operation since you won’t want to change it during the calculation. Make sure you put a pad between the white nodes and transform.

Trigger the cache manually from a bang iobox to see how it behaves. The program may seem inactive but it’s just a long calculation

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.