Review of draft proposal

Hello everyone,
I completed my first draft proposal, I tried my best in making it. Please help me to improve it. Feel free to comment on the document itself.
Neural network library for processing

6 Likes

@kll, @kfrajer please review and help me perfecting it.

I’m a big fan of this proposal, but I have a challenge for you.

Review ml5.js and spend an afternoon figuring out how to use TensorFlow in Processing. What do you think about creating a (mostly) compatible Processing version of ml5.js?

I just started tinkering with machine learning models in Processing, and moving from the CPU to the GPU can really make or break a sketch.

3 Likes

@mcintyre I’m Glad you noticed that, I already thought a lot on this, notice our conversation on Need guidance in developing and idea, My idea literally was Tensorflow for processing, but these were the major issues in creating a layer over TensorFlow.

  • TensorFlow for Java is deprecated by google itself.

  • It uses apache maven for dependency management. Which means user have to install maven first for using it and follow a rigorous setup procedure. It follows different setup processes for MAC, Linux, Windows so maintaining consistency across different OS will be an issue.

  • It will be heavy and after creating the abstraction layer and it won’t be much scalable for processing specific needs.

and more…

Magic and love, the example you’ve shown, It’s more like OpenCV for processing. I’ve looked for help there to.

please let me know if you have way around

Fantastic–you’re two steps ahead of me! I think the advice in that thread is sound, particularly finding an established library to wrap (TensorFlow or not).

On that note, is the entire Java API for TensorFlow deprecated, or is it not guaranteed to remain stable? If the latter, then pinning your Processing library to a particular version may not be a huge issue; some of the most popular Processing libraries bundle older dependencies. I think a beginner-friendly API could/should survive occasional changes under the hood.

As for dependencies, you may end up using Maven to build platform-specific versions of a library so that users profit. You could add said libraries to the libs/ folder of your Eclipse project so they are automagically bundled for users.

I just created a repo to see if I can get a proof of concept running with TensorFlow 2.1. If it looks promising, you’re more than welcome to use the code as a jumping off point. If not, no big deal :wink:

2 Likes

@mcintyre that’s great, I will be helping you in making this library till the actual coding period of GSoC starts, If things went right (without comprising user-friendliness), then this will be our way to expand.
That’s exactly why I left so much room for suggestions in my proposal.

Thank you!

1 Like