[Scilab-Dev] Machine Learning Toolbox
Tan Chin Luh
chinluh at tritytech.com
Fri May 19 10:22:27 CEST 2017
Hi all Scilab and machine learning enthusiasts,
Great to have this topic in the mailing list as I am also exploring in
deep learning recently.
From my point of view, there are a few possibilities to build the ML
toolbox in Scilab, namely:
1. Using the Scilab Matrix operation (Pro: fast for the parts which
allow vectorization, Con: memory issue. Not sure about GPU support)
2. Using C/C++ API, such as caffe, caffe2, dlib, tiny dnn....?
3. Using Python API through PIMS, such as python with tensorflow, keras,
dlib...?
4. Using Java interface throught JIMS, such as....? (a few i came across
which never explore..)
For the small to medium size network such as conventional FFBP, i think
method one would have advantage as the batch processing could speed up
the training and the codes are highly "readable" for non hardcore
programmer. The network weights which could be simply representing by
the matrices (1-2 hidden layers) and let the users easily visualize the
"internal beauty" of the trained network with Scilab visualization features.
However, when we move to CNN, or other deep learning network, i am not
sure whether we could leverage the advantage of this. Or at least, it
won't be a "jumpstart" way to build a new ML module.
In seeing this, a quick "jumpstart" could be looking into the 2-4
methods. Then another issue might appear. Each of these having their
class/structure to keep the complicated deep network architecture, and
how are we going to interface this to Scilab? Should we:
1. Use the objects (Java objects, C++ class object in Scilab) to access
the network created or loaded through the API?
2. Convert the objects into the Scilab mlist so it is more readable?
Then from the Scilab programmers point of view, if we were using the
JIMS or PIMS, at the ends the Scilab codes would be very much looks like
Python or Java style, unless we wrote another macros to wrap all these
into Scilab style. So far I think the C/C++ API might be the most
"seamless" integrated into Scilab, which we could utilizing parts of
the C/C++ libraries while others work in Scilab
Finally as for the GPU usage concern, using libs could have solve this
depending on the lib being used.
Forgive me if I made any mistake, just my 2 cents.
Regards,
Tan Chin Luh
More information about the dev
mailing list