Cloud9で「ゼロから作るDeep learning」 学習環境を構築 （jupyter miniconda python3）

#ゼロから作るDeep Learning（本）の学習環境をクラウド（Cloud9)上で作成しました。
Cloud9上にAnaconda(miniconda),Jupyterをインストールする。
プログラム開発は数年ぶりで、今はクラウドでプログラム開発が出来ることに驚いている。とにかく、cloud9やjupyter,anacondaの知識はほぼゼロの私が一からパッケージをインストールして動作させるまで奮闘したメモ。

##環境
- Cloud9 有償版
- miniconda(anacondaの最小限の構成）　参考　anacondaやcondaを記載している[サイト](http://qiita.com/y__sama/items/5b62d31cb7e6ed50f02c)
- python 3.5.3
- jupyter notebook

##インストールメモ
###cloud9のフリー版ではディスク容量が足りない！
Cloud9はフリーだと思っていましたが、ツールをインストールする毎に容量が足りなくなり、2Gがあっという間に100%になりました。そのため、やむおえず有償版を利用しました。月１９ドルです。ディスク容量は15Gに設定したほうが安心です。

###cloud9へのminicondaやjupyter などのインストールはこちらを参考にしました。

下記のコマンドを入力してパスワードを入れるだけです！ありがとうございます。
http://qiita.com/y__sama/items/58419e85f39265fe6df8

```git clone https://github.com/y-sama/cloud9.git
bash cloud9/init.sh　（インストール確認が出たら基本「y」で問題ありません）
```
主に、Jupyter, pythonが使えるようになるそうです。
インストール中にjupyterのパスワードを作成するので適当に入力する。

ここでシェルを再起動すること。
![jupyter3.png](https://qiita-image-store.s3.amazonaws.com/0/188563/bc257bad-ec40-e7e2-869f-af041f2b0af1.png)

###jupyterの起動

インストール完了後、jupyter notebook　をコマンドラインから実行することでjupyterが起動される。
~~インストール完了後、jupyterからcloud9配下のRunjupyter.shをjupyterから実行するとjupyterが実行される。~~その後、/xxxx.ユーザー名.c9users.io/tree#  xxxx:workspace名でブラウザからアクセスすると、パスワードの入力要求があるので、先程のパスワードを入力するとjupyterの画面が表示される。




###numpyのモジュール読み込みエラー
jupyterで下記のコードを実行するとエラーとなる。プロジェクトの言語はpython3にしておくこと。
![cloud9-1.jpg](https://qiita-image-store.s3.amazonaws.com/0/188563/e01921af-342b-a1c2-1a09-692397f5987e.jpeg)


```import numpy as np```

＜エラー内容＞
ImportError                               Traceback (most recent call last)
<ipython-input-1-4ee716103900> in <module>()
 1 import numpy as np
ImportError: No module named 'numpy'import numpy as np

＜対処＞
numpyのモジュールがありませんというエラーです。色々検索して下記の２つのコマンドを実行すると直った。

参考サイト
http://qiita.com/y__sama/items/58419e85f39265fe6df8　


- Anacondaじゃなくてminicondaを入れている場合はこれくらい入れておけば多分OK。

```conda install jupyter scikit-learn bokeh seaborn pandas dask networkx numba pep8 pillow scikit-image sqlalchemy sqlite statsmodels sympy xlrd xlsxwriter xlwt```

- Anaconda周りはこれくらい設定しておけばいいです。

```conda update conda #condaのバージョンはよくあがるので、一応チェックしておく
echo 'alias activate="source $PYENV_ROOT/versions/anaconda3-4.0.0/bin/activate"' >> ~/.bashrcsource ~/.bashrc
conda install seaborn # anacondaに入っていないので入れておく```

ここで再度シェルを再起動すること。

###章のディレクトリにあるモジュールが読めない

jupyterはjupyter配下のディレクトリで実行されるようである。deep learningで使用しているモジュールは、例えば４章の場合は ch04配下にあるので、パスを予めはる必要がある。

＜エラー内容＞

```
ImportError                               Traceback (most recent call last)
<ipython-input-2-54013c78c948> in <module>()
      3 import numpy as np
      4 import matplotlib.pylab as plt
----> 5 from gradient_2d import numerical_gradient
      6 
      7 
ImportError: No module named 'gradient_2d'
```
＜対処＞
```
import sys
sys.path.append('/home/ubuntu/workspace/jupyter/ch04')###このように章のディレクトリパスをはる
import numpy as np
import matplotlib.pylab as plt
from gradient_2d import numerical_gradient　#パスをはらないと、ここでモジュールが見つからないとエラーになる
```

###from dataset.mnist import load_mnist でモジュールの読み込みエラーとなる。
- 書籍のファイル（https://github.com/oreilly-japan/deep-learning-from-scratch）は jupyter配下に展開しないと、jupyter上でプログラムを動かした時に、モジュールのimportでエラーとなる。
下記の図のように、jupyterフォルダー配下に展開する。

![jupyter1.png](https://qiita-image-store.s3.amazonaws.com/0/188563/6d767cc6-6455-571d-ec15-ef755e6417be.png)

###jupyter上でのグラフ表示
jupyterがちゃんと動作すると下記のようにグラフも表示されます。

![jupyter2.png](https://qiita-image-store.s3.amazonaws.com/0/188563/35777aa1-6d3a-c43f-7d3f-25f40c2bc670.png)