大分寒くなってきました。耐えられないほど寒いわけではないですが、体調を考えて暖房を使い始めることにしました。
ディープラーニングへの興味は薄れてきたとは言ったものの、面白そうな講座を見つけたので、少し遊んでみようかという気になりました。
www.atmarkit.co.jp
Google Colaboratoryを使ってそのまま実行できるので、理解しやすいです。
講座がまだ途中なので、少し待たないといけないですが、次が楽しみです。
Colaboratoryについて
この講座にColaboratoryの使用方法の説明へのリンクが有るのですが、何故かGoogle Driveから登録して使えとかになっていて判りにくかった。
colab.research.google.com
普通にこの「Colaboratory へようこそ」のページの方を見たほうがいいと思います。
- 「ファイル」→「python3の新しいノートブック」とすれば新しいものが作成できて、コードをコピペすれば実行できます
- 「ファイル」→「保存」とすればGoogle Driveに保存されます
- 「ファイル」→「開く」とすれば、Google Driveに保存したものを開けます
Windows Subsystem for Linuxに同じような環境を作ってみた
ローカルでも実行してみたいなと思って、WSLにも環境を構築してみました。といっても、大体ここに書いてある通りにしただけです。
qiita.com
違うのは以下の点。
- バージョンは最新を使用(python 3.7.3, tensorflow 2.0.0)
- venvは使わない
- パッケージを幾つか追加
pyenvのインストール
pyenvはpythonの複数バージョンを切り替えて使う事ができるツールです。ubuntsuのpythonは2.7系で、tensorflowが3.5以上が必要らしいので、このツールで切り替えて使います。
$ curl https://pyenv.run | bash
以下の3行を ~/.bashrcに追加してから、有効に(source ~/.bashrc)する。
export PATH="/home/hironaga/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
pyenvでpython 3.7.3をインストール
まずは、不足しているパッケージをインストールします。不足するパッケージは環境によるでしょうが、私の場合、以下が足りませんでした。
$ sudo apt install libbz2-dev libreadline-dev libsqlite3-dev zlib1g-dev libssl-dev libffi-dev
python 3.7.3をインストールします。
$ pyenv install 3.7.3
これだけで終わりです。これで、
$ pyenv global 3.7.3
とすると、3.7.3を使うようになりますし、
$ pyenv global system
とすると、システムのものに戻ります。
tensorflowをインストール
tensorflowをインストールします。
$ pip install --upgrade -I setuptools $ pip install --upgrade tensorflow
setuptoolsは以下のような文句を言われたので、インストールしています。
ERROR: tensorboard 2.0.2 has requirement setuptools>=41.0.0, but you'll have setuptools 40.8.0 which is incompatible.
これで、とりあえずサンプルコードは動きました。
(おまけ)pandasのインストール
「Colaboratory へようこそ」のページに合ったpandasを動かそうとしたのですが、pandasのバージョンが0.25.xだと動かないようです。
qiita.com
ここに書いてあるように、0.24.1を使うと動くようになりました。
$ pip install pandas==0.24.1
ただ、以下のようにprintをかましてやらないと、うまく表示されません。この辺りColaboratoryは工夫されているようです。
import pandas as pd print(pd.__version__) california_housing_dataframe = pd.read_csv("https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv", sep=",") print(california_housing_dataframe.describe())