FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

Googleの人工知能ライブラリTensorFlowを評価するための仮想環境を構築する

Google人工知能ライブラリ「TensoFlow」をオープンソース化した。

http://tensorflow.org/

Pythonで書かれたライブラリで構成されており、サンプルやチュートリアルを見ただけでも、画像の分類処理や手書きの認識処理を試すことができる。 評価環境を立ち上げるために、まずはTensorFlowの環境を構築するためのVagrantの仮想環境を作ってみることにした。

TensorFlowのインストール方法の勉強

TensorFlowのインストール方法は、下記のウェブサイトに書かれている。

http://www.tensorflow.org/get_started/os_setup.md

今回はベースの環境としてUbuntu15.04を使うため、Linuxの部分を読んで進んでいく。 ちなみに、GPGPUは今回は利用しない。まあ仮想環境だしね。今後TensorFlowを理解できるようになったら導入してもいいかもしれない。

TensorFlowのパッケージはPythonなので、Pythonのパッケージ環境を使ってインストールするらしい。

# For CPU-only version
$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

通常ならばこれでOKだが、今回はVagrantで自動的に仮想環境を構築したい。これらをChefで起こしていく。

TensorFlowのインストール手順をChefレシピに起こす

TensorFlowのバイナリと、サンプルを実行させるためのソースコードが必要なので、これらを導入しよう。 Pythonのパッケージをインストールするためのpip_pythonのcookbookを導入してみたかったが、使い方がよく分からなかったのでやむなくshellをexecuteした。

git "/home/vagrant/tensorflow" do
  repository "https://github.com/tensorflow/tensorflow"
  revision "master"
  enable_submodules true
  action :sync
end

packages = %w{python-numpy swig python-dev}
packages.each do |pkg|
  package pkg do
    action [:install, :upgrade]
  end
end


execute "extract pip_python" do
  cwd "/home/vagrant/"
  command "pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl"
  action :run
end

github.com

Vagrantを起動する

vagrantを起動すると、自動的にTensorFlowと必要なソースコードがguthubから落とされる。

vagrant up

Vagrantの中に入って、TensorFlowを動かしてみる

$ vagrant ssh
Welcome to Ubuntu 15.04 (GNU/Linux 3.19.0-28-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Tue Nov 10 16:59:01 UTC 2015

  System load:  0.16              Processes:           73
  Usage of /:   5.4% of 38.81GB   Users logged in:     0
  Memory usage: 7%                IP address for eth0: 10.0.2.15
  Swap usage:   0%

  Graph this data and manage this system at:
    https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

50 packages can be updated.
21 updates are security updates.

New release '15.10' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Tue Nov 10 16:56:49 2015 from 10.0.2.2
vagrant@vagrant-ubuntu-vivid-64:~$ ls -lt
total 4
drwxr-xr-x 7 vagrant vagrant 4096 Nov 10 16:58 tensorflow
vagrant@vagrant-ubuntu-vivid-64:~$ cd tensorflow/

さて、早速例題を動かしてみよう。

http://tensorflow.org/get_started/os_setup.md#binary_installation

上記の、「Train your first TensorFlow neural net model」を動かしてみる。

vagrant@vagrant-ubuntu-vivid-64:~/tensorflow$ python tensorflow/models/image/mnist/convolutional.py
Succesfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Succesfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Succesfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Succesfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 1
I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 1
Initialized!
Epoch 0.00
Minibatch loss: 12.053, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%
Epoch 0.12
Minibatch loss: 3.285, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.0%
...

おお、動きだした。とりあえず環境はできたので、今日はここまで。