1. muddydixon

    Posted

    muddydixon
Changes in title
+Chainer をソースコードを弄りながらあれこれ試す時の環境
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,40 @@
+ようやく時間が取れたので[chainer](http://chainer.org/)を弄っています。
+僕はソースをいろいろ弄りながらじゃないと理解ができないのですが、環境汚染やソースに手を入れた後これをクリーンに戻すのが面倒だったりします。
+これを楽にできる方法としての現時点での自分のベストプラクティスです。
+
+## Dockerを使う
+pythonも2系と3系が入り混じっててあれなので、基本的にはDockerを使います。
+この時に手元のコードとchainerのコードをあれこれするので以下のようにVolumesを使って試しています(emacsが使いたいし)
+
+```zsh
+% cd ${MYPATH}
+% git clone git@github.com:pfnet/chainer.git
+% mkdir chainer-egg
+% mkdir chainer-try
+% docker pull python:3.5.1
+% docker run -it \
+ --entrypoint /bin/bash \
+ --name chainer \
+ -v ${MYPATH}/chainer-try:/tmp/chainer \
+ -v ${MYPATH}/chainer:/usr/local/lib/python3.5/site-packages/chainer \
+ -v ${MYPATH}/chainer-egg:/usr/local/lib/python3.5/site-packages/chainer-1.7.0-py3.5-linux-x86_64.egg \
+ python:3.5.1
+root@00b6a6aa3955:/ pushd /usr/local/lib/python3.5/site-packages/chainer
+root@00b6a6aa3955:/usr/local/lib/python3.5/site-packages/chainer pip install numpy
+root@00b6a6aa3955:/usr/local/lib/python3.5/site-packages/chainer python setup.py install
+root@00b6a6aa3955:/usr/local/lib/python3.5/site-packages/chainer pushd /tmp/chainer
+root@00b6a6aa3955:/tmp/chainer
+```
+
+こうしておいてから、あとは
+
+```
+root@00b6a6aa3955:/tmp/chainer python -B sample.py
+```
+
+として適宜手元の方の `${MYPATH}/chainer-egg` のコードに`debug`なり`print`なりを打ち込んであれこれ試しながらやると、破棄も簡単だし、pythonのバージョンのあれこれを懸念したりしないでできるのでとてもよいです。
+
+### おまけ
+同様に tensorflow とか python、 ruby でもなんでもできます。
+
+emacs 最高です