This Jupyter notebook shows how to
- Launch training on your FfDL cluster using Jupyter notebook as a client
- Use Adversarial Robustness Toolbox (ART) to test the robustness of Deep Learning models against adversarial attacks.
To run this notebook you need a Kubernetes cluster with FfDL deployed as described in the FfDL/README.md.
To store model and training data, this notebook requires access to a Cloud Object Storage (COS) instance. BlueMix Cloud Object Storage offers a free lite plan. Follow these instructions to create your COS instance and generate service credentials with HMAC keys. Then go to the COS dashboard:
- Get the
cos_service_endpoint
from the Endpoint tab - In the Service credentials tab, click New Credential +
- Add the "HMAC"
inline configuration parameter:
{"HMAC":true}
, click Add - Get the
access_key_id
(AWS_ACCESS_KEY_ID) andsecret_access_key
(AWS_SECRET_ACCESS_KEY) from thecos_hmac_keys
section of the instance credentials:"cos_hmac_keys": { "access_key_id": "1234567890abcdefghijklmnopqrtsuv", "secret_access_key": "0987654321zxywvutsrqponmlkjihgfedcba1234567890ab" }
- Add the "HMAC"
inline configuration parameter:
Before running this notebook for the first time we recommend creating a Python 3 virtual environment using either virtualenv, venv (since Python 3.3), or Conda.
# assuming present working directory to be the FfDL project root
pip3 install virtualenv
virtualenv .venv/art
.venv/art/bin/pip install -r etc/notebooks/art/requirements.txt --upgrade
Optional, this step can be done in the notebook itself.
export PUBLIC_IP=<Public IP of your FfDL cluster>
export KUBECONFIG=<Path to Kubernetes cluster configuration file>
export AWS_ACCESS_KEY_ID=<S3 cloud object storage access key ID>
export AWS_SECRET_ACCESS_KEY=<S3 cloud object storage secret access key>
export AWS_ENDPOINT_URL=<Cloud object storage endpoint URL, i.e. 'https://s3-api.us-geo.objectstorage.softlayer.net'>
export AWS_DEFAULT_REGION=<Cloud object storage default region, i.e. 'us-east-1'>
Before starting the Jupyter notebook server, make sure to activate the Python virtual environment.
source .venv/art/bin/activate
Start the Jupyter notebook server.
jupyter-notebook --notebook-dir etc/notebooks/art
# ... use Control-C to stop the notebook server
Deactivate the virtual environment after stopping the Jupyter notebook server.
deactivate
To delete the Python virtual environment run the following command:
rm -rf .venv/art
Special thanks to Anupama-Murthi and Vijay Arya who created the original notebook which we modified here to showcase how to use ART with FfDL. If you would like to try Watson Machine Learning (WML) Service with ART check out Anupama and Vijay's notebook here: