機械学習とその他

機械学習したいマン

jupyter notebookについて

アドベントカレンダー初日です。
adventar.org

今まであまりアウトプットをしてきてなかったことと、
ブログを書くことで日本語力が向上するといいなあ、ということでアドベントカレンダーを書いてくことにします。

今回はjupyter notebookについてです。
jupyter.org

深層学習を行う際には、ほぼ必ずGPUが必要となり、
そのため、GPUが積まれているサーバーにsshしてプログラムを動かすことが主になります。
その際に、vimとかでpythonファイルを書いて、実行してみて・・・ってのを繰り返すのはなかなか面倒なわけです。
基本的に、自分はssh先ではjupyter notebookを使用しています。

jupyter notebookは実行した出力が残せたり、
f:id:looseleaf0727:20171201005103p:plain


ソースコードの説明をノートのようにmarkdownで残せたり、
f:id:looseleaf0727:20171201004724p:plain


画像や表を描画する際にも便利です。
f:id:looseleaf0727:20171201005217p:plain

実行して値や結果を確認しながらさくさく書いて試していけるところが個人的に好きなところです。
markdownでたくさんノートを残したり、実行結果を残すことで、他の人が読むときもわかりやすいところも良いです。


あとは、tabキーで補完が使えたり、
f:id:looseleaf0727:20171201010021p:plain


shift+tabでdocstringが見れて便利です。
f:id:looseleaf0727:20171201010232p:plain


ただし、jupyter notebookで学習を回すと、
学習が終了しても、グラボのメモリを確保したままになってしまうのでそこは要注意です。

さらさらっとjupyter notebookでソースコードを書き上げたあと、

jupyter nbconvert --to python ~.ipynb

みたいにすると、pyファイルが出力されるので、そっちを使って動かすのも良いですね。
皆さん使ってみてください。