O'Reilly Japan - ゼロから作るDeep LearningのP.12辺りのサンプルが動くか試してみる。
PyCallのインストール
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
$ bundle init
# Gemfile
gem 'pycall'
$ bundle
numpy.rb
require 'bundler'
Bundler.require
require 'pycall/import'
include PyCall::Import
pyimport 'numpy', as: :np
x = np.array.([1.0, 2.0, 3.0])
y = np.array.([2.0, 4.0, 6.0])
p x + y # array([ 3., 6., 9.])
A = np.array.([[1, 2], [3, 4]])
p A # array([[1, 2],
# [3, 4]])
p A.shape # (2, 2)
p A.dtype # dtype('int64')
B = np.array.([[3, 0], [0, 6]])
p A + B # array([[ 4, 2],
# j[ 3, 10]])
$ bundle exec ruby numpy.rb
普通に動いた!
参考
- Ruby + PyCallで機械学習をやってみた at Pydata Okinawa #23 - The paradigm shift
- pycall/hist.rb at ad6a66cc1a6bd0a4ba7c0fea3bb0c3f61e7817ab · mrkn/pycall