9.6.2 环境搭建方法
下面以nips 2017介绍如何搭建nips对抗攻击防御环境。nips 2017对抗攻击防御赛使用的数据集都是兼容imagenet 2012的图片,并且被分为两部分:
? dev数据集,在比赛开始时提供给参赛者,用来开发参赛算法,这部分包括1000张图片。
? final数据集,此数据集并不会提供给参赛者,在最后用来评估参赛者所提交的算法。这部分包含了5000张图片。
nips 2017对抗攻击防御环境依赖docker,因此需要预先安装docker环境。如果希望使用gpu,还需要安装gpu版本的docker。
以没有gpu的ubuntu为例,可以直接通过pip工具安装docker ce for ubuntu。
sudo apt-get install docker-ce
如果需要使用gpu,应在安装了docker ce for ubuntu的基础上再安装nvidia-docker(见图9-14)。
以ubuntu和cuda 9.0为例,执行以下命令即可安装。
# 添加nvidia-docker2下载链接
curl -s -l https://nvidia.github.io/nvidia-docker/gpgkey |
sudo apt-key add -
distribution=$(. /etc/os-release;echo $id$version_id)
curl -s -l
https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list |
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
# 安装 nvidia-docker2 并重启其服务
sudo apt-get install -y nvidia-docker2
sudo pkill -sighup dockerd
图9-14 nvidia-docker架构
直接从github上同步代码。
git clone https://github.com/tensorflow/cleverhans
cd cleverhans/examples/nips17_adversarial_competition/
执行初始化环境脚本,下载对应的数据集和初始化环境。
./download_data.sh
测试代码目录下主要的三个目录分别为:
? dataset,包含dev和final数据集,默认初始化是只下载了dev数据集。
? dev_toolkit,包含开发阶段需要使用的工具。
? eval_infra,包含测试和提交结果使用的工具。