Edited at

人工知能(機械学習)で、第6感の可視化に挑戦 その⑤

More than 1 year has passed since last update.

第6感をAIで可視化できないか?という試みの 第5弾になります。

全体のお話はこちら

人工知能(機械学習)で、第6感の可視化に挑戦


はじめに

今回の範囲はこちらになります。

赤枠の環境を構築することが、今回のゴールです。

system_structure.jpg


アプリを公開する環境


クラウドサービス

代表的なのが、Amazon、Microsoft、Google の3大クラウド。

以前Amazonが提供しているAWSを使っていたのですが、日中動かしているだけで(夜間は節約のため止めてた)1万/月くらいかかってしまっていました。

ちょっと高いので、今回は不採用


レンタルサーバ

用途に応じて、共用サーバ/専用サーバ/VPS(仮想専用サーバー)があるようです。

https://www.kagoya.jp/howto/rentalserver/basic-01/


  • 共用サーバ

    利用料金が最も安い。今回使いたいPHP/apache/pythonが使える状態になっているものもあるようです。

    ただ、今回必要なtensorflow/kerasが使えなさそうなので、不採用


  • VPS

    利用料金もクラウドサービスほど高くなく、環境も自由に設定できるよう。

    今回はVPSを使ってみることにします。



さくらVPS

レンタルサーバ業者は複数あるようなのですが、有名なのがさくら、ロリポップ、お名前.comらしいです。

さくらの「ネコでもわかる!さくらのVPS講座」が分かりやすかったので、今回はさくらVPSを利用してみることにします。


申込・基本的な設定

「ネコでもわかる!さくらのVPS講座」に従って、以下を実施


pyenvインストール

centOS7にはデフォルトでpython2.7がインストールされているようです。

今回はpython3を使いたい。しかしデフォルトで入っているpython2.7をアンインストールするのもちょっと躊躇います。。。

ということで、複数バージョンのPythonを簡単に切り替えられるというpyenvを使ってみます。


pyenvとは

こちらを参考にさせて頂きました。


pyenvのインストール・設定

こちらが大変参考になりました。

ポイントは、Pythonの実行環境をすべてのユーザが使えるように作成するというところ。

webアプリの実行ユーザであるapacheユーザでもpythonを実行できるようにしたいためです。

尚、仮想環境は使わないので、pyenv-virtualenv はインストールしていません。


anacondaインストール

必要なライブラリを各々インストールしてもよいのですが、、、

ライブラリの依存関係やインストールの順番を考えるの面倒なので、anacondaを入れてしまいます。

早速pyenvを使ってインストールします。

pyenvの使い方はこちらを参考にさせてもらいました。

pyenvでインストール可能なライブラリ一覧を確認

# pyenv install --list

Available versions:
2.1.3
2.2.3
 ・・・
anaconda3-5.0.1
anaconda3-5.1.0
 ・・・

anacondaは最新版が「anaconda3-5.1.0」のようです。

最新版をインストールしてみます。

# pyenv install anaconda3-5.1.0

バージョンを切り替えます。

# pyenv global anaconda3-5.1.0

# pyenv versions
anaconda3-5.1.0


各種必要なライブラリをインストール

anacondaに内包しているconda(パッケージ管理システム)を使って、必要なライブラリをインストールしていきます。


condaのアップデート

まずは、condaそのものをアップデートしておきます。

# conda update -n base conda

Solving environment: done

## Package Plan ##
added / updated specs:
- conda

The following packages will be downloaded:

package | build
---------------------------|-----------------
conda-4.4.11 | py36_0 930 KB

The following packages will be UPDATED:

conda: 4.4.10-py36_0 --> 4.4.11-py36_0

Proceed ([y]/n)? y <-- yes/noを聞かれるので、y(yes)を入力

Downloading and Extracting Packages
conda 4.4.11: ####################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done


tensorflow

conda installでtensorflowを追加

tensorflowに付随していろいろインストールされるようです。

# conda install tensorflow

Solving environment: done
## Package Plan ##
environment location: /usr/local/lib/pyenv/versions/anaconda3-5.1.0
added / updated specs:
- tensorflow

The following packages will be downloaded:

package | build
---------------------------|-----------------
tensorboard-1.6.0 | py36hf484d3e_0 2.9 MB
gast-0.2.0 | py36_0 15 KB
bleach-1.5.0 | py36_0 22 KB
html5lib-0.9999999 | py36_0 176 KB
markdown-2.6.11 | py36_0 104 KB
astor-0.6.2 | py36_0 42 KB
termcolor-1.1.0 | py36_1 7 KB
tensorflow-base-1.6.0 | py36hff88cb2_0 39.4 MB
tensorflow-1.6.0 | 0 3 KB
protobuf-3.5.1 | py36hf484d3e_0 597 KB
libprotobuf-3.5.1 | h6f1eeef_0 4.2 MB
absl-py-0.1.10 | py36_0 129 KB
grpcio-1.10.0 | py36hf484d3e_0 1.6 MB
------------------------------------------------------------
Total: 49.2 MB

The following NEW packages will be INSTALLED:
absl-py: 0.1.10-py36_0
astor: 0.6.2-py36_0
gast: 0.2.0-py36_0
grpcio: 1.10.0-py36hf484d3e_0
libprotobuf: 3.5.1-h6f1eeef_0
markdown: 2.6.11-py36_0
protobuf: 3.5.1-py36hf484d3e_0
tensorboard: 1.6.0-py36hf484d3e_0
tensorflow: 1.6.0-0
tensorflow-base: 1.6.0-py36hff88cb2_0
termcolor: 1.1.0-py36_1

The following packages will be DOWNGRADED:
bleach: 2.1.2-py36_0 --> 1.5.0-py36_0
html5lib: 1.0.1-py36h2f9c1c0_0 --> 0.9999999-py36_0

Proceed ([y]/n)? y <-- yes/noを聞かれるので、y(yes)を入力

Downloading and Extracting Packages
tensorboard 1.6.0: ################################################################################################## | 100%
gast 0.2.0: ######################################################################################################### | 100%
bleach 1.5.0: ####################################################################################################### | 100%
html5lib 0.9999999: ################################################################################################# | 100%
markdown 2.6.11: #################################################################################################### | 100%
astor 0.6.2: ######################################################################################################## | 100%
termcolor 1.1.0: #################################################################################################### | 100%
tensorflow-base 1.6.0: ############################################################################################## | 100%
tensorflow 1.6.0: ################################################################################################### | 100%
protobuf 3.5.1: ##################################################################################################### | 100%
libprotobuf 3.5.1: ################################################################################################## | 100%
absl-py 0.1.10: ##################################################################################################### | 100%
grpcio 1.10.0: ###################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done


keras

conda installでkerasを追加

# conda install keras

Solving environment: done
## Package Plan ##
added / updated specs:
- keras
The following packages will be downloaded:

package | build
---------------------------|-----------------
keras-2.1.5 | py36_0 490 KB

The following NEW packages will be INSTALLED:
keras: 2.1.5-py36_0

Proceed ([y]/n)? y <-- yes/noを聞かれるので、y(yes)を入力

Downloading and Extracting Packages
keras 2.1.5: ######################################################################################################## | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done


動かしてみます。はい、OK!

人工知能(機械学習)で、第6感の可視化に挑戦 その②で作成した学習モデルを動かしてみます。

$ python dra_vgg16_test.py.py

Using TensorFlow backend.
Downloading data from https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5
58892288/58889256 [==============================] - 16s 0us/step
2018-03-20 23:00:25.163278: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX
test_a.py:31: UserWarning: Update your `Model` call to the Keras 2 API: `Model(inputs=Tensor("in..., outputs=Tensor("se...)`
model = Model(input=vgg16.input, output=top_model(vgg16.output))
[('toushu', 0.6204089), ('yashu', 0.3795911)]

無事動きました。


まとめ

VPSを初めて利用しましたが、無事に環境構築ができました。


最後に

無事環境ができました。あとはこれだけ。