まさかのメモリリーク? もはやぼくにとって手放せなくなったmrknさんのPyCall.rbですが、メモリリーク的な現象に遭遇して困ったので逃げ道も含めて情報共有しておきます。 検証コード まずこちらは何の問題もない Python コードです。ふつうに動き、問題は起きません。 import cv2 for i in range(1000): img = cv2.imread("foo.jpg") print(img.shape)
![PyCall.rb でメモリリークみたいな現象が起こったので workaround - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/5ebff3a8e7d59e06cfbc2c5b410acdf45fb6820a/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UHlDYWxsLnJiJTIwJUUzJTgxJUE3JUUzJTgzJUExJUUzJTgzJUEyJUUzJTgzJUFBJUUzJTgzJUFBJUUzJTgzJUJDJUUzJTgyJUFGJUUzJTgxJUJGJUUzJTgxJTlGJUUzJTgxJTg0JUUzJTgxJUFBJUU3JThGJUJFJUU4JUIxJUExJUUzJTgxJThDJUU4JUI1JUI3JUUzJTgxJTkzJUUzJTgxJUEzJUUzJTgxJTlGJUUzJTgxJUFFJUUzJTgxJUE3JTIwd29ya2Fyb3VuZCZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9MGI5YjFhNWYzYTRiMzQyNTQwNDIxZjk3OGFlYjIwOGE%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB5YWdzaGkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTM2N2I5YjAzYWE1NDg3OGQ5ZTI0MzhlNWMzN2JiY2Zj%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Da2919bad1bdae0e460d5747127dcb755)
English version is available at github PyCall は Ruby の中から既存の Python ライブラリを使うにはとても便利なライブラリです。 とはいえ、これは Ruby から Python の関数を呼ぶためのライブラリなので、Python の関数を1回呼ぶ度に Ruby に制御が戻ってきます。 これが元でちょっと間違えやすいこともあるようです。 例えば下のような記事を見つけました。 Ruby×PyCallでTensorflowのMNISTチュートリアル「連想配列の違いで手間取った」 そこで Ruby の柔軟な構文を活かして、Python っぽいコードを Ruby プログラムの中に埋め込んでおくと、そこだけまとめて切り出して Python に送って実行する DSL を作ってみました。 Yadriggy を使って作っています。 この DSL の実装は
pycall公式ロゴ はじめに PyCallは mrkn さんが開発されている、Python のライブラリを Ruby や Julia で利用するためのブリッジライブラリです。 https://github.com/mrkn/pycall.rb/ PyCallの解説やインストール方法は mrkn さん始め諸賢のドキュメントが多く有りますので、ここでは私がRuby版PyCallを使ってきてのTipsを書いていきます。(2018年2月時点の最新版 PyCall 1.0.3 に基づく) Tips Python ライブラリのロード Python のライブラリを使う場合、次の2行を書いておく # Pythonだと、 import matplotlib pyimport :matplotlib pyimport 'matplotlib' # 上ではシンボルを使ったが、文字列でも同じ # Python
現在、Rubyはデータサイエンス分野では使いにくいプログラミング言語です。その主な理由として、実用的に使える環境が存在しないことが挙げられます。この状況を変えるには、データサイエンスの全工程をRubyで実施できる環境を整備しなければなりません。本稿ではデータサイエンスでよく利用されるPythonのツール群をRubyから使用するための仕組みである「PyCall」を紹介します。 PyCall(GitHub) 1 はじめに 株式会社Speeeで研究者をしている村田です。現在はRubyをデータサイエンスで使えるプログラミング言語にするための仕事に取り組んでいます。 これまでRubyはデータサイエンスの仕事では役に立たないプログラミング言語でした。仕事で実用に耐えられるツールが無く、ユーザが増えず、開発者も集まらない悪循環が原因です。こうした悪循環を解消するには、実用的な道具や環境を早急に整備して、
2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一本化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod
開発部 R&D グループの村田 (mrkn) です。 2017年05月19日、Speee Lounge で DataScience.rb ワークショップ 〜ここまでできる Rubyでデータサイエンス〜 を開催しました。 このワークショップは当初、私が2016年10月から取り組んでいる PyCall の開発 *1 と、Ruby アソシエーション開発助成の支援の下で実施された西田さん、三軒家さん、芦田さんによるプロジェクトの成果報告のために企画されました。そんな中、クリアコードの須藤さんが2017年2月頃から Apache Arrow の Ruby バインディングを開発する Red Data Tools プロジェクトを開始されました。Apache Arrow は2016年頃から開始されたプロジェクトで、私は当初から Ruby の将来にとって重要な基盤になるはずだと思い注目していたこともあり *
require 'pycall/import' include PyCall::Import pyimport 'numpy', as: 'np' pyimport 'tensorflow', as: 'tf' # Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3 x_data = np.random.rand.(100).astype.(np.float32) y_data = x_data * 0.1 + 0.3 # Try to find values for W and b that compute y_data = W * x_data + b # (We know that W should be 0.1 and b 0.3, but Tensorflow will # figure that out f
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く