はじめに
静岡Developers勉強会では、今年の勉強会のテーマとして「人工知能ハンズオン」を予定しています。
人工知能ハンズオンとして、Googleが提供しているオープンソースの人工知能ライブラリ「TensorFlow」の使い方を学ぶという方向にでもしようかな。
とりあえずセッションを担当する自分が現状では何も分かっていない状態ですので、先ずは「TensorFlow」を自PCにインストールしてみました。
TensorFlow Ver 0.12でWindowsがサポートされましたので、記事を作成しました。
yaju3d.hatenablog.jp
もはやLinux版の環境が古くなったため、新しく記事を作成しました。
yaju3d.hatenablog.jp
インストールがお手軽なDocker版も一緒にお読み下さい。
yaju3d.hatenablog.jp
アクセス解析をみると「tensorflow 32bit版」があったので下記サイトをリンクしておきます。
TensorFlowを32bit-Ubuntuにインストールした時のメモ | Workpiles
環境
- Windows 10 Home 64bit
- Oracle VM VirtualBox 5.0.16
インストール準備
残念ながら、「TensorFlow」はLinux版とMac版しか用意されていません。
Windows PCをお持ちの方は、仮想PCにLinuxを入れて使用するということになります。
ちなみに、Python数値計算環境「Anaconda」のWindows版を入れれば動くかもと、「TensorFlow」をインストールしようとしましたが、Linux版やMac版のどちらを入れても、「not supported」エラーとなりました。AnacondaのWindows版はあくまでWindows上として動作するためでした。
VirtualBoxにUbuntu(64bit)をインストール
下記サイトを参考にVirtualBoxにUbuntu 14.04.2 LTSをインストールしました。
サイトとの違いとして、メモリは2048MByte、仮想ハードドライブサイズは40GByteにしています。
ottan.xyz
このままでは画面サイズは640x480と狭いので、下記サイトを参考に画面サイズを変更します。
opensourcetech.hatenablog.jp
インストール時のエラー
Ubuntu(64bit)を入れようとするとPCによっては下記のエラーが出ます。
「This kerner requures an X86-64 CPU, but only detected an i686 CPU」
これはVirtualBoxのUbuntu 32bit用に64bit版をインストールしようとしたためです。
何故、VirtualBoxにUbuntu 64bit用がリストに表示されないのかというと、PCのBIOSの仮想化機能が有効になっていないためです。有効にするためには、BIOSの設定(Lenovoでは再起動時にF1キーを押す等)で、Security→Vitualizationを「Enabled」にして保存後に再起動する必要があります。
クリップボードの共有
Ubuntuのインストールが完了したら、VirtualBoxメニューのデバイスの「クリップボードの共有」を双方向にしておくとWindowsのクリップボードを貼り付け出来たりして便利です。また、「ドラッグ&ドロップ」も同様に双方向にするといいでしょう。
ターミナルの起動
Ubuntuを使うのは初めてだったので、何をどうすればいいのかちょっと迷いました。
先ずはWindowsのコマンドプロンプトのようなのを起動する必要があります。
Ubuntuの左横のパネルメニューから「コンピューターとオンラインリソースの検索」をクリックします。
検索ボックスで「terminal」を入力すると「端末」(ターミナル)が出てきますのでクリックします。
pipのインストール
ターミナルが起動したら、最初に「pip」をインストールして下さい。
pipとは、Pythonで書かれたパッケージソフトウェアをインストール・管理するためのパッケージ管理システムです。RubyのRubyGemsやPerlのCPANやWindowsのNuGetといったところです。
ターミナル上で下記のコマンドを入力します。
$ sudo apt-get install python-pip
※$より前の部分は自分の環境では「yaju@yaju-VirtualBox:~$」です。これはインストール環境によって変わります。説明する上で便宜上省略しています。
Python数値計算環境「Anaconda」のLinux版をインストール
AnacondaとはPythonの数値計算環境を構築するために様々なパッケージをまとめた無料のディストリビューションです。
Anacondaをインストールをすると、NumPy,SciPy,matplotlib、scikit-learn等のパッケージがインストールされます。
Ubuntu上のWebブラウザ「FireFox」で下記サイトからAnaconda for Linux PYTHON 3.5 LINUX 64-BITをダウンロードしてください。ファイルの保存先は「ダウンロード」にしました。
https://www.continuum.io/downloads
※Python2.7ではなくPython3.5にしたのは、サイト「http://learningtensorflow.com/lesson1/」を参考にしたためです。
ターミナル上で「bash 」と入力したら、Ubuntuの左横のパネルメニューから「ファイル」からダウンロードフォルダにある「Anaconda3-2.5.0-Linux-x86_64.sh」をドラッグ&ドロップしました。引用符は付いたままでもいいかも知れませんが、一応消しました。
$ bash /home/yaju/ダウンロード/Anaconda3-2.5.0-Linux-x86_64.sh
AnacondaのTensorflow用環境を作成
Anacondaのインストールが終わったら、一旦ターミナルを閉じて下さい。
これはTensorflow用環境を作成する際に使用する「conda」コマンドがまだ有効になっていないためです。
Tensorflow用環境を作成するため、ターミナル上で下記のコマンドを入力します。
サイト「http://learningtensorflow.com/lesson1/」と一緒にするため、名前は「tensorenv」にしました。envは環境(environment)の略称
$ conda create --name=tensorenv python=3.4
環境が作成されていきます、途中のProceedの確認は「y」を入力します。
Proceed ([y]/n)? y Fetching packages ... openssl-1.0.2g 100% |################################| Time: 0:00:08 383.49 kB/s xz-5.0.5-1.tar 100% |################################| Time: 0:00:03 174.33 kB/s python-3.4.4-0 100% |################################| Time: 0:00:37 430.92 kB/s setuptools-20. 100% |################################| Time: 0:00:01 268.10 kB/s wheel-0.29.0-p 100% |################################| Time: 0:00:00 133.57 kB/s pip-8.1.1-py34 100% |################################| Time: 0:00:04 376.02 kB/s Extracting packages ... [ COMPLETE ]|###################################################| 100% Linking packages ... [ COMPLETE ]|###################################################| 100%
以下のコマンドで作った環境の一覧を表示できます。
$ conda info -e Using Anaconda Cloud api site https://api.anaconda.org # conda environments: # tensorenv /home/yaju/anaconda3/envs/tensorenv root * /home/yaju/anaconda3
作成した環境を有効にするには下記のコマンドを入力します。
$ source activate tensorenv
これで先頭に「(tensorenv)」が付くようになります。
(tensorenv)$
pipのバージョン確認
TensorFlowをインストールしようした際、pipのバージョン 8.1.1でないと下記のエラーが表示されます。
You are using pip version 8.0.2, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
下記のコマンドでpipのバージョンが確認できます。
(tensorenv)$ pip -V
もし、pipのバージョン 8.1.1でない場合、下記のコマンドでpipをアップグレードします。
(tensorenv)$ pip install --upgrade pip
※tensorenvの環境を有効にしないまま、TensorFlowをインストールしようとしたからpipのバージョン 8.0.2のままだったのかも。tensorenvの環境を有効にしたなら、pipのバージョン 8.1.1がインストールされているはず。
TensorFlowのインストール
TensorFlowには、「CPU only」と「GPU enabled」の2種類が用意されています。今回は「CPU only」版をインストールします。
ファイル名はPython34にしているので「tensorflow-(version No)-cp34」となります。ちなみにPython27は「cp27」です。
バージョンは現時点(2016/03/27)で最新の「0.7.1」を入れます。
入力が長いのでクリップボードにコピーして貼り付ければいいです。
(tensorenv)$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.7.1-cp34-none-linux_x86_64.whl
Building wheels for collected packages: numpy あたりで10分程度かかりました。
Collecting tensorflow==0.7.1 from https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.7.1-cp34-none-linux_x86_64.whl Downloading https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.7.1-cp34-none-linux_x86_64.whl (13.8MB) 100% |████████████████████████████████| 13.8MB 36kB/s Requirement already up-to-date: wheel>=0.26 in ./anaconda3/envs/tensorenv/lib/python3.4/site-packages (from tensorflow==0.7.1) Collecting numpy>=1.8.2 (from tensorflow==0.7.1) Downloading numpy-1.10.4.tar.gz (4.1MB) 100% |████████████████████████████████| 4.1MB 79kB/s Collecting six>=1.10.0 (from tensorflow==0.7.1) Downloading six-1.10.0-py2.py3-none-any.whl Collecting protobuf==3.0.0b2 (from tensorflow==0.7.1) Downloading protobuf-3.0.0b2-py2.py3-none-any.whl (326kB) 100% |████████████████████████████████| 327kB 315kB/s Collecting setuptools (from protobuf==3.0.0b2->tensorflow==0.7.1) Downloading setuptools-20.3.1-py2.py3-none-any.whl (508kB) 100% |████████████████████████████████| 512kB 276kB/s Building wheels for collected packages: numpy Running setup.py bdist_wheel for numpy ... done Stored in directory: /home/yaju/.cache/pip/wheels/66/f5/d7/f6ddd78b61037fcb51a3e32c9cd276e292343cdd62d5384efd Successfully built numpy
TensorFlowのインストールエラー
途中で下記のエラーが発生してインストールが止まります。
Installing collected packages: numpy, six, setuptools, protobuf, tensorflow
Found existing installation: setuptools 20.3
Cannot remove entries from nonexistent file /home/yaju/anaconda3/envs/tensorenv/lib/python3.4/site-packages/easy-install.pth
これは、パッケージの依存関係のコンフリクトっぽいので対象パッケージをremoveしてから再度Tensorflowをインストールします。
conda remove -n tensorenv setuptools
途中のProceedの確認は「y」を入力します。
Using Anaconda Cloud api site https://api.anaconda.org Fetching package metadata: .... Package plan for package removal in environment /home/yaju/anaconda3/envs/tensorenv: The following packages will be REMOVED: setuptools: 20.3-py34_0 Proceed ([y]/n)? y Unlinking packages ... [ COMPLETE ]|###################################################| 100%
TensorFlowの再インストール
コマンド入力したのは履歴が残っていますので、矢印の上キーを入力すると楽です。
(tensorenv)$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.7.1-cp34-none-linux_x86_64.whl
setuptoolsのコンフリクトを解消させてからTensorFlowのインストールすれば再インストールする必要はないんですが、既にインストールされている部分は飛ばすので時間はかかりません。
Collecting tensorflow==0.7.1 from https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.7.1-cp34-none-linux_x86_64.whl Using cached https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.7.1-cp34-none-linux_x86_64.whl Requirement already up-to-date: wheel>=0.26 in ./anaconda3/envs/tensorenv/lib/python3.4/site-packages (from tensorflow==0.7.1) Requirement already up-to-date: numpy>=1.8.2 in ./anaconda3/envs/tensorenv/lib/python3.4/site-packages (from tensorflow==0.7.1) Requirement already up-to-date: six>=1.10.0 in ./anaconda3/envs/tensorenv/lib/python3.4/site-packages (from tensorflow==0.7.1) Collecting protobuf==3.0.0b2 (from tensorflow==0.7.1) Using cached protobuf-3.0.0b2-py2.py3-none-any.whl Collecting setuptools (from protobuf==3.0.0b2->tensorflow==0.7.1) Using cached setuptools-20.3.1-py2.py3-none-any.whl Installing collected packages: setuptools, protobuf, tensorflow Successfully installed protobuf-3.0.0b2 setuptools-20.3.1 tensorflow-0.7.1
TensorFlowの動作確認
バージョンが表示されればインストール成功です。
(tensorenv)$python -c "import tensorflow; print(tensorflow.__version__);" 0.7.1
これでやっとTensorFlowを始められます。