Help us understand the problem. What is going on with this article?

人工知能(機械学習)で、第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を初めて利用しましたが、無事に環境構築ができました。

最後に

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away