概要
先日 Macにインストールした GPU対応TensorFlowをバックエンドにするKerasをインストールする。
環境
- MacBook Pro (Mid 2012) with NVIDIA GeForce GT 650M 1024 MB
- OS X El Capitan
- Xcode 7.3 command-lineツールもインストール済
- homebrew インストール済み
- pythonの環境 Anaconda-4.2
- TensorFlow 0.11.0rc1 下記の手順でインストール済み
- http://qiita.com/kznx/items/2c1f97ee9ad7cc25186f
手順
AnacondaのTensorFlow EnvironmentのTerminalを起動する。Navigaterでは、Environmentsで、TensorFlowの環境を選択し、「Open terminal」で起動する。
pipでインストールする。依存関係のあるパッケージも同時にインストールされる。
$ pip install keras
python で一度importする。
import keras
Using TensorFlow backend.
??なぜかデフォルトで TensorFlow backendになっている。
theanoだった場合は、こちらを参考にバックエンドを変更する。
- http://qiita.com/shngt/items/0d9a5ea47dddd97fcd27
確認
こちらのブログから、MNISTテストコードを利用させていただく。
- http://aidiary.hatenablog.com/entry/20160328/1459174455
ただ、コンソールだからか、matplotlibが RuntimeErrorになるので、plotは諦めてソースから削除し実行。
$ python keras_mlp.py
Using TensorFlow backend.
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcurand.8.0.dylib locally
Downloading data from https://s3.amazonaws.com/img-datasets/mnist.pkl.gz
15237120/15296311 [============================>.] - ETA: 0strain samples: (60000, 784)
test samples: (10000, 784)
building the model ...
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:901] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:944] Found device 0 with properties:
name: GeForce GT 650M
major: 3 minor: 0 memoryClockRate (GHz) 0.9
pciBusID 0000:01:00.0
Total memory: 1023.69MiB
Free memory: 232.70MiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:965] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1034] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0)
Train on 54000 samples, validate on 6000 samples
Epoch 1/100
54000/54000 [==============================] - 5s - loss: 0.2624 - acc: 0.9189 - val_loss: 0.0916 - val_acc: 0.9750
Epoch 2/100
54000/54000 [==============================] - 4s - loss: 0.1100 - acc: 0.9663 - val_loss: 0.0674 - val_acc: 0.9800
Epoch 3/100
54000/54000 [==============================] - 4s - loss: 0.0777 - acc: 0.9764 - val_loss: 0.0754 - val_acc: 0.9792
Epoch 4/100
54000/54000 [==============================] - 4s - loss: 0.0635 - acc: 0.9813 - val_loss: 0.0763 - val_acc: 0.9802
Epoch 5/100
54000/54000 [==============================] - 4s - loss: 0.0517 - acc: 0.9845 - val_loss: 0.0776 - val_acc: 0.9810
9920/10000 [============================>.] - ETA: 0sTest loss: 0.0728235235678
Test accuracy: 0.9802
成功です。ちゃんとGPUを使っているようだ。
実行前に、tereminal起動後、一度だけ環境変数の設定を忘れずに行います。
$ export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/lib
Jupyter notebookを使う場合は、terminalから下記のように起動する。
$ jupyter-notebook