Help us understand the problem. What is going on with this article?

Colaboratoryで10秒で起動できる、ChainerのGitHubレポジトリ作ってみた

More than 1 year has passed since last update.

TL;DR

  • Google DriveにColaboratoryですぐに実行できるChainerのハンズオンを用意しました
  • GitHub上のレポジトリchainer-community/chainer-colab-notebookでバージョン管理していて、masterにマージされるとtravisが自動でGoogle Driveに反映します(@ikeyasu さんがやってくれました!)
  • Contribution Welcome ;)

Colaboratoryとは

  • Google社製の機械学習ツール。
  • Jupyter Notebookをwebサービス化したようなもの。
  • Googleドライブに保存でき、他のデータと同様に共有可能。
  • もちろん無料な上に、最近はGPUまでつかえるよう。

詳しい情報はこの記事などが詳しいです。
【秒速で無料GPUを使う】深層学習実践Tips on Colaboratory

ColaboratoryでChainerを動かすには

!apt -y install libcusparse8.0 libnvrtc8.0 libnvtoolsext1
!ln -snf /usr/lib/x86_64-linux-gnu/libnvrtc-builtins.so.8.0 /usr/lib/x86_64-linux-gnu/libnvrtc-builtins.so
!pip install 'cupy-cuda80==4.0.0b4' 'chainer==4.0.0b4'

ちなみにですが、chainer-jpというSlackがあるのですが、そこで下記のようにお願いしたら @kmaehashi さんが1日で作ってくれました。みなさんもChainerで困ったら聞いてみると良いかも!
スクリーンショット 2018-03-19 22.38.15.png

ChainerのハンズオンをColaboratoryで作ってみた

  • まず、既存のハンズオンやチュートリアルをColaboratoryで動くように変更し、Google Driveに集めました。
  • 作業内容は以下の通り、とても簡単でした。
    1. Jupyter Notebookをインポートする
    2. kmaehashi/chainer-colabを使ってGPU対応する
    3. 稼働時間、データ配置などを考慮して微修正する

Colaboratoryで動くようになったは良いけど・・・

上記のように、簡単にColaboratory用のハンズオンを用意できましたが、いくつか問題が発生しました。

  1. バージョン管理などのメンテナンスをどうすればいいのだろうか?GitHubみたいな感じでPRとか送ってもらえるようにしたいものの、管理がGoogle Driveだとそういうのができなさそう。
  2. GitHubで管理しようにも、Google Driveからdownloadしたipynb形式のファイルから改行が消えていて、とてもじゃないがバージョン管理できるファイル形式ではない。

課題1:バージョン管理をどうするか

ColaboratoryはGoogle Drive上のipynb形式のファイルを開けるので、ちょっとしたpythonのコードを書いたり、それを共有したりするのに向いています。ただ、バージョン管理、特に複数人で変更を加え、適切にレビュー・マージを繰り返すような複雑なバージョン管理をしようとなると厳しいです。そこでGitHubにレポジトリchainer-community/chainer-colab-notebookを作成して、管理することにしました。

課題2:Google Driveからdownloadしたipynb形式のファイルから改行が消えている

Google Drive上のipynb形式のファイルをDownloadすると下記のように改行が消えてしまっています。
スクリーンショット 2018-03-19 23.15.30.png

ただ、この問題の解決は簡単で下記のようにColaboratoryで開いて、「.ipynbをダウンロード」を使えば大丈夫でした。
image.png

結局どうなったか

  • 色々課題はあったが、バージョン管理もしたいし、Contiributionも自由にしてもらいたいので、GitHubで内容を管理するように。
  • さらに @ikeyasu さんのPRにより、travisで自動同期するようになった!

最後に

  • せっかくこのような仕組みを作ったので、自慢のハンズオン・チュートリアルがあればPRを送って頂けたらと思っています!
  • chainer-jpのSlackに#colaboratoryというchannelがあるので、興味がある方は参加してもらえるとありがたいです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away