‣ Since Nov 2017 ‣ You can write deep learning programs in Ruby by using mxnet.rb and MXNet runtime library ‣ It doesn’t depend on Python runtime ‣ You need only Ruby ‣ But `pip install mxnet` is currently easiest way to install MXNet runtime library
learning programs in Ruby ‣ Without dependency on Python (pycall.rb) ‣ There is Tensorflow.rb, but I don’t want to use Tensorflow C API ‣ I think Apache MXNet must be best for Ruby
MXNet::Symbol.var(:b) c = b * a # generate a computation graph d = c + 1 # ditto # execute the computation graph d.eval(a: MXNet::NDArray.ones([10]), b: MXNet::NDArray.ones([10]) * 2) Symbolic style * 1 + a b c d
Flexible • It enables us to write loop directly in the syntax of the programming language e.g. while, until, loop { … }, each { … }, etc. • Symbolic Programs Tend to be More Efficient • It can optimize memory usage automatically • It can optimize computation orders
In deep learning programming • Imperative style is helpful for writing parameter update routines • Gradient calculation should be performed in symbolically • In MXNet, Gluon API supports hybrid style programming
for distributed scientific computation • Using Key-Value Store to exchange parameters among each thread in each machine • For example: • Distributed model training https://mxnet.incubator.apache.org/versions/master/faq/distributed_training.html
Microsoft and Facebook • We can interchange learned models between different frameworks by ONNX • e.g. We can use Python and Keras for experimental, and we can use Ruby and MXNet for production
• Conference-driven development • Currently focusing on Gluon API ‣ Laurent Julliard (@ljulliar) • Currently focusing on the coverage of NDArray API Future plan ‣ I want to achieve 100% feature coverage
that is better for supporting in Ruby ‣ mxnet.rb is under development but some APIs has already been usable ‣ Contact me if you want to join the development
2. Acting rather than blaming 3. Continuous, iterative progress rather than a short, big project 4. The current lack of knowledge doesn't matter 5. Ignore criticism from outsiders 6. Fun!
Numerical Computing and Deep Learning in Ruby with Cumo http://rubykaigi.org/2018/presentations/sonots.html#may31 • Support Apache Arrow • Develop around Red Chainer • red-datasets: provides common datasets • red-arrow: Apache Arrow Ruby binding
in Ruby • Interested in Red Data Tools, Red Chainer • online • en: https://gitter.im/red-data-tools/en • ja: https://gitter.im/red-data-tools/ja • offline • hold meetup every month at Speee, inc in Tokyo • https://speee.connpass.com/ • I’m at the Speee booth at RubyKaigi2018
then the following 4 projects are running: • Business Intelligence with daru • Advanced features in daru-views • NetworkX.rb: Ruby version of NetworkX • Ruby version of matplotlib The discussions are being held on RubyData’s discourse https://discourse.ruby-data.org/c/gsoc/gsoc2018
Shirakashi ‣ After afternoon break ‣ Contents • Data analysis with Ruby’s data tools • Data analysis with pycall and Python data tools • Introduction of Red Data Tools project
in Ruby is progressed day by day ‣ You will be able to do not only deep learning, but also GPGPU and distributed computation by these frameworks ‣ The development of tools for generic data science is also progressed day by day ‣ You can join these development projects