Evaluating mxnet in scala


#1

Hi, i’m looking to use mxnet in scala and I would like to get some more infos. I know python and r are the main languages for this framework, but is scala supported well?
Does it supports gluon, or scala will be marginalized?
How easy is to train nets in scala? Are there some visualization tools and stuff like that? Or is it better to train in python and move weights?

If I want to train a net in python and then move to scala, all layers configuration will be moved too, or should I rewrite the complete pipeline a second time?
And what about custom layers? Should I need to rewrite them twice, in python and scala, or operations are saved in the model file and loaded with the weights?

Thank you for your time, I’ll really appreciate any answer


#2

Hi, here are my answers inline,

is scala supported well? Does it supports gluon, or scala will be marginalized?

Operators are completely integrated in Scala. Gluon is not supported, we haven’t got a plan yet.

How easy is to train nets in scala? Are there some visualization tools and stuff like that? Or is it better to train in python and move weights?

You can use Module API to train nets and we do have ml.dmlc.mxnet.Visualization for visualization. Although training in Scala is supported, I do not recommend it.

If I want to train a net in python and then move to scala, all layers configuration will be moved too, or should I rewrite the complete pipeline a second time?

You can use Scala API to read a model file which is saved by Python and do inference directly. But if your test network is different from that during training, then you do have to rewrite in Scala.

And what about custom layers? Should I need to rewrite them twice, in python and scala, or operations are saved in the model file and loaded with the weights?

For custom layers, I’m afraid that you have to rewrite it in Scala.