There aren't a lot of GPU-accelerated Machine Learning Framework in MacOS besides CreateML or TuriCreate. Luckily, we could use PlaidML as a backend for Keras as it implements Metal Performance Shaader.
Easiest way is installing Anaconda and install Keras in an environment
$ brew install anaconda
Creating an isolated environment for each of our project is also a good idea
$ conda create -n keras $ conda activate keras
Install Plaid ML
Installing and Configuring PlaidML is surprisingly easy.
$ pip install plaidml-keras $ plaidml-setup
plaidml-setup automatically detects viable options in the system. Simply select the strongest GPU we have with
metal in the name. The settings will be persisted as
.plaidml in the home directory.
Integrating with Keras
KERAS_BACKEND environment variable. Easiest way is to include this line in the same Python script
import os os.environ["KERAS_BACKEND"] = "plaidml.keras.backend"
Let's try with MNIST example from Keras. Look for two messages confirming the backend used.
Let the training begin!