はじめに
これまではKerasをバックエンドでTensorflowを動かすことでディープラーニングを行っていました。Pythonで機械学習をするだけなら、これまで通りKerasを使えばいい話なのですが、Pythonで学習させたモデルと重みをC++で使いたい用途が出てきました。本当はKerasで学習させたモデルを使えればいいのですが、C++のAPIもあるTensorflowで直接コーディングした方が簡単そうなので、そちらから攻めてみることとします。
まず下準備として、Windowsに構築しているAnacondaの環境にTensorflowをインストールして、確認するところまでをこの記事ではまとめておきます。Tensorflow 1.0から関数名が大幅に変更が加わっているため、1.0にアップグレードしようと考えてらっしゃる方は注意してください。ちなみに、(2017/3/8現在)公式HPにそのまま載っているcondaコマンドではうまくいかないので注意してください。
バージョン1.0以前のスクリプトを使いたい場合は、公式の移行ガイドを参照してください。もしくは、自動で変換してくれるスクリプトが公式から公開されているので、それをご使用ください。
(追記)tensorflowが更新され、python3.6でも利用することができるようになったみたいです。これに関しては、別記事を近日作成する予定です。
導入環境
- Windows 10(64bit)
- Anaconda 4.3.0(64bit)
- Python 3.5(仮想環境を作成します)
- Tensorflow 1.0(これからインストールします)
手順
Anacondaのインストール方法
Anacondaのバージョンは違いますが、手順は同じなので次のURLのAnacondaのインストールを参照してください。
http://qiita.com/tomochiii/items/c17505872781c201d7b1
Tensorflowのインストール
Python3.5の準備
Tensorflowは今のところPython3.5.xしかサポートしていません。現在の最新版のAnacondaを上記の手順通りにインストールすると同時にインストールされるPythonのバージョンは3.6になります。そのため,私はAnaconda上に仮想環境としてPython3.5の環境を作成しました。Anaconda環境としてPython3.5のものを選んでインストールした方はこの手順は飛ばしてもらって大丈夫です。
TensorflowのためにPython3.5の仮想環境を作成するために、Anacondaプロンプトを起動し、次のコマンドを実行してください。Jupyter Notebookで開発を行う人は同時にjupyterもインストールしておくことを勧めます。
# tensorflowのための仮想環境の作成、名前のパラメータはなんでもいいです
$ conda create --name=tensorenv python=3.5
# 後ろにパッケージ名を列挙することで同時にインストールできます
$ conda create --name=tensorenv python=3.5 jupyter numpy <package name> ...
# 仮想環境ができているかの確認
$ conda info -e
リストの中に、conda createで指定した名前があれば成功です。仮想環境に移り方と抜け方は次のコマンドで行います。名前のところはリストの中にあるものを指定してください。
# 仮想環境への移り方
$ activate tensorenv
# 仮想環境からの抜け方
$ deactivate tensorenv
もし間違って作成してしまった場合は、次のコマンドで仮想環境を削除することができます。
# 仮想環境の削除
$ conda remove --name=tensorenv --all
Tensorflowのインストール
Tensorflowをインストールするコマンドは二つあります。次のどちらかでインストールすることができます。
CPU版Tensorflowのインストールコマンド。
# tensorflowインストールコマンド1
$ pip install --upgrade tensorflow
# tensorflowインストールコマンド2
$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl
GPU版Tensorflowのインストールコマンド。こちらは動作確認しておりません。
# tensorflowインストールコマンド1
$ pip install --upgrade tensorflow-gpu
# tensorflowインストールコマンド2
$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.0.0-cp35-cp35m-win_amd64.whl
コマンド1では、tensorflowの最新バージョンが、コマンド2では、指定したバージョンをインストールすることができます。
インストール確認
最後に正しくインストールできたか確認します。コマンドラインからPythonを起動し、Tensorflowがインポートできるか確認します。
# Pythonの起動
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
上記スクリプトを実行して、何もエラーがでずに"Hello, TensorFlow!"と表示されればインストール完了です!
おわりに
Tensorflowで学習するスクリプトの実装ができたら、投稿していきたいと思います。また、この投稿のわかりにくい箇所や間違っているところがあれば修正するので、コメントなどでお教えくださると助かります。