mrkn / mxnet.rb

MXNet binding for Ruby
MIT License
48 stars 10 forks source link

Is this project still alive? #37

Closed stefano-sarioli closed 5 years ago

stefano-sarioli commented 5 years ago

Hi,

I'm interested in MXnet support for Ruby, and I was wondering if this project is still alive or if it's been frozen in favor of other efforts toward the implementation of Ruby as API language for MXnet.

Stefano

mrkn commented 5 years ago

@stefano-sarioli Thank you for contacting me about this project. The answer is yes. I'm continuing to work for merging #33 in #36.

What components are you interested in? If it is Gluon API, I recommend to watch the contents of #33, and then start to work for the continuation of #33 if you can.

stefano-sarioli commented 5 years ago

Hi, my first interest is to port GLuon API so that we can use Ruby to make predictions with an already trained network. I'm going to look into the issue point out by you and see what I can do, I hope to be helpful for the project and thank you.

toddsundsted commented 5 years ago

@mrkn I'm happy to continue to work on adding more of Gluon, as well. I'd be happy for guidance on what you need so that I can make the process of integrating my work easier on you. Just let me know!

mrkn commented 5 years ago

@toddsundsted Hi Todd!

First, I need to apologize to you for my delayed work in #36.

I don't give up to merge your valuable work, and I want to continue to develop mxnet.rb with you. Now I want to know your next plan to advance Gluon implementation. Please tell me if you have a plan. Integrating your work on mine is not difficult technically, but it just needs time to work. I cannot concentrate only on mxnet.rb, but I will advance the progress day by day as possible.

By the way, we need to collect the rules of our API design policy of mxnet.rb. For example, Python-style constructor is one of them. I removed Python-style constructors from your pull-request in #36. It is because, in Ruby, the class name function like Integer() is a converter instead of a constructor. We cannot list up all of such rules in the design policy at this time. We should need to find one by one. This development policy is necessary to move to team development.

mrkn commented 5 years ago

@toddsundsted If I have to choose a thing to make my work easier, it is making a pull-request smaller.

33 consists of a very large amount of commits, so I need to take a large amount of time to review each commit.

toddsundsted commented 5 years ago

@mrkn for the most part, i have been working through the MXNet Straight Dope lessons and implementing library pieces necessary in Ruby. my goal is to make it possible for a Rubyist to study machine learning this way (without having to use Python). next up, I think, is to implement Xavier, Dropout, additional types of loss, and some of the other missing pieces. i realize that this approach means nothing is implemented completely (i'm not implementing all of the initialization classes, followed by all of the loss classes, etc.).

toddsundsted commented 5 years ago

i'm fine removing the Python-style constructors. i wasn't sure if that was a good idea, and after using the library for a while myself, i realized i didn't even use them. i will review my code and see if i can find other cases we should clarify.

toddsundsted commented 5 years ago

i can definitely put together smaller commits going forward. https://github.com/mrkn/mxnet.rb/pull/33 was a lot of code.