Edited at

Keras (TensorFlow backend)をMacにインストール

More than 1 year has passed since last update.


概要

先日 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



参照、参考、Special Thanks