Hebali commented on issue #9647: Gluon in Core API
URL: 
https://github.com/apache/incubator-mxnet/issues/9647#issuecomment-363209250
 
 
   Core functionality for supported languages (namely Python, Scala, R, Julia, 
C++ and Perl) is delivered through bindings to MXNet's C API (see 
[c_api.h](https://github.com/apache/incubator-mxnet/blob/master/include/mxnet/c_api.h)
 and 
[c_predict_api.h](https://github.com/apache/incubator-mxnet/blob/master/include/mxnet/c_predict_api.h)).
 
   
   Each language's wrapper (such as 
[R-package](https://github.com/apache/incubator-mxnet/tree/master/R-package), 
[cpp-package](https://github.com/apache/incubator-mxnet/tree/master/cpp-package),
 etc) adds its own language-specific conveniences. For instance, the C++ 
package adds some OOP friendliness to the C functionality. 
   
   Naturally, it does not make sense and in many cases would not be not 
possible to include those language-specific conveniences in the C API. So, 
admittedly, there are numerous aspects of Gluon that cannot be promoted to the 
core C API.
   
   But, it seems like Gluon is going in a direction that will lead to a lot of 
great functionality that could and should be included in the C API. For 
instance, 
[rnn_cell.py](https://github.com/apache/incubator-mxnet/blob/master/python/mxnet/gluon/rnn/rnn_cell.py)
 and 
[rnn_layer.py](https://github.com/apache/incubator-mxnet/blob/master/python/mxnet/gluon/rnn/rnn_layer.py).
 RNNs are highly relevant to ML work being done in any of the supported 
languages. Sure, someone using one of those languages could implement 
equivalent functionality for themselves. But, I think such a concession 
diminishes the overall value of MXNet / Gluon.
   
   As I said in my original post, TensorFlow has already made this mistake. 
Hopefully, they will back out of it. But why make the same one in MXNet? Python 
is clearly a preferred language for ML. I use it a lot and am a fan. But there 
are some important reasons for using MXNet in the other supported languages. 
Support within C and/or C++ means that native applications can take direct 
advantage of the functionality. The current thinking seems to be: "ML 
researchers develop models in Python, serialize them and then (maybe) serve 
them from C/C++" But that seems like somewhat short-term thinking. For MXNet's 
long-term flexibility and relevance, I think it is important to include as much 
as possible in the core C API.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to