2017/2/18追記 1.0正式版がリリースされましたので、この記事の内容は古くなっています。正式版のインストールについてこちらの日記に書きました。
先日TensorFlowがWindowsでビルドできるようになったという記事を書いたが、公式からバイナリのインストーラが提供された。
https://www.tensorflow.org/versions/r0.12/get_started/os_setup.html#pip-installation-on-windows
さっそくインストールしてMNISTサンプルを動かすことができたので、手順を示しておく。
基本的に公式のドキュメント通りでインストールできた。
前提ソフトウェアとして、以下のソフトウェアをインストールしておく。
インストール済みのTensorFlowをアンインストール
自分でビルドしたTensorFlowをインストール済みの場合は、アンインストールを行う。
pip uninstall tensorflow
TensorFlowのインストール
GPUを有効にして、TensorFlowをpipでインストールする。
pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-0.12.0rc0-cp35-cp35m-win_amd64.whl
※2017/2/14追記 コマンドは古くなっているので、最新の情報は公式を参考にしてください。
自分の環境ではインストール中に以下のエラーがでたが、2回実行すればインストールできた。
Traceback (most recent call last): File "c:\anaconda3\lib\runpy.py", line 184, in _run_module_as_main "__main__", mod_spec) File "c:\anaconda3\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Anaconda3\Scripts\pip.exe\__main__.py", line 9, in <module> File "c:\anaconda3\lib\site-packages\pip\__init__.py", line 233, in main return command.main(cmd_args) File "c:\anaconda3\lib\site-packages\pip\basecommand.py", line 252, in main pip_version_check(session) File "c:\anaconda3\lib\site-packages\pip\utils\outdated.py", line 102, in pip_version_check installed_version = get_installed_version("pip") File "c:\anaconda3\lib\site-packages\pip\utils\__init__.py", line 838, in get_installed_version working_set = pkg_resources.WorkingSet() File "c:\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 644, in __init__ self.add_entry(entry) File "c:\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 700, in add_entry for dist in find_distributions(entry, True): File "c:\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1949, in find_eggs_in_zip if metadata.has_metadata('PKG-INFO'): File "c:\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1463, in has_metadata return self.egg_info and self._has(self._fn(self.egg_info, name)) File "c:\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1823, in _has return zip_path in self.zipinfo or zip_path in self._index() File "c:\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1703, in zipinfo return self._zip_manifests.load(self.loader.archive) File "c:\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1643, in load mtime = os.stat(path).st_mtime FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。: 'c:\\anaconda3\\lib\\site-packages\\setuptools-27.2.0-py3.5.egg'
MNISTサンプル実行
GitHubから最新のレポジトリをダウンロードする。
git clone https://github.com/tensorflow/tensorflow.git
MNISTサンプルを実行する。
cd tensorflow\models\image\mnist python convolutional.py
成功すれば以下のような結果が表示される。
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library cublas64_80.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library cudnn64_5.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library cufft64_80.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library nvcuda.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library curand64_80.dll locally Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes. Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes. Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes. Successfully 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 c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:885] Found device 0 with properties: name: GeForce GTX 1080 major: 6 minor: 1 memoryClockRate (GHz) 1.8225 pciBusID 0000:01:00.0 Total memory: 8.00GiB Free memory: 6.66GiB I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:906] DMA: 0 I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:916] 0: Y I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0) E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:586] Could not identify NUMA node of /job:localhost/replica:0/task:0/gpu:0, defaulting to 0. Your kernel may not have been built with NUMA support. Initialized! Step 0 (epoch 0.00), 13.3 ms Minibatch loss: 8.334, learning rate: 0.010000 Minibatch error: 85.9% Validation error: 84.6% Step 100 (epoch 0.12), 5.3 ms Minibatch loss: 3.254, learning rate: 0.010000 Minibatch error: 6.2% Validation error: 7.6% Step 200 (epoch 0.23), 5.3 ms Minibatch loss: 3.353, learning rate: 0.010000 Minibatch error: 7.8% Validation error: 4.5% Step 300 (epoch 0.35), 5.3 ms Minibatch loss: 3.127, learning rate: 0.010000 Minibatch error: 1.6% Validation error: 3.1% (略) Step 8100 (epoch 9.43), 5.3 ms Minibatch loss: 1.630, learning rate: 0.006302 Minibatch error: 0.0% Validation error: 0.8% Step 8200 (epoch 9.54), 5.3 ms Minibatch loss: 1.623, learning rate: 0.006302 Minibatch error: 0.0% Validation error: 0.9% Step 8300 (epoch 9.66), 5.3 ms Minibatch loss: 1.610, learning rate: 0.006302 Minibatch error: 0.0% Validation error: 0.7% Step 8400 (epoch 9.77), 5.3 ms Minibatch loss: 1.595, learning rate: 0.006302 Minibatch error: 0.0% Validation error: 0.8% Step 8500 (epoch 9.89), 5.3 ms Minibatch loss: 1.600, learning rate: 0.006302 Minibatch error: 0.0% Validation error: 0.9% Test error: 0.8%
先日自分でビルドしたTensorFlowでは、100Stepごとの実行時間が約120msだったが、5.3msと実行速度が速くなっている。
速くなりすぎてちゃんと実行できているか不安になるが、error率が順調に減っているので動いていそうである。
なお、以下のエラーがでるのは、自分でビルドした場合と同じであるが、無視してもよさそうである。
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:586] Could not identify NUMA node of /job:localhost/replica:0/task:0/gpu:0, defaulting to 0. Your kernel may not have been built with NUMA support.
ビルドができるようになってから、こんなに早く公式のバイナリが提供されるとは思っていなかった。
これで、WindowsでもLinux並みの機械学習環境が整ったのではないだろうか。