AI 安全之对抗样本入门 (31):打造对抗样本工具箱 2.10

阅读数:6 2019 年 11 月 30 日 15:14

AI安全之对抗样本入门(31):打造对抗样本工具箱 2.10

(GPU 服务器)

内容简介
第 1 章介绍了深度学习的基础知识,重点介绍了与对抗样本相关的梯度、优化器、反向传递等知识点。
第 2 章介绍了如何搭建学习对抗样本的软硬件环境,虽然 GPU 不是必需的,但是使用 GPU 可以更加快速地验证你的想法。
第 3 章概括介绍了常见的深度学习框架,从 TensorFlow、Keras、PyTorch 到 MXNet。
第 4 章介绍了图像处理领域的基础知识,这部分知识对于理解对抗样本领域的一些常见图像处理技巧非常有帮助。
第 5 章介绍了常见的白盒攻击算法,从基础的 FGSM、DeepFool 到经典的 JSMA 和 CW。
第 6 章介绍了常见的黑盒攻击算法。
第 7 章介绍了对抗样本在目标识别领域的应用。
第 8 章介绍了对抗样本的常见抵御算法,与对抗样本一样,抵御对抗样本的技术也非常有趣。
第 9 章介绍了常见的对抗样本工具以及如何搭建 NIPS 2017 对抗防御环境和轻量级攻防对抗环境 robust-ml,通过这章读者可以了解如何站在巨人的肩膀上,快速生成自己的对抗样本,进行攻防对抗。

本书中会大量使用 CNN、LSTM 和 MLP,这些计算量都非常巨大,尤其是 CNN 几乎就是 CPU 杀手。

目前在深度学习领域,主流的商用 GPU 型号是 NVIDIA Tesla 系列 K40、M40 以及 M60,我们将对比这三款产品的关键性能参数,官方的参数对比如下:

  • M60 拥有两个 GM204 核芯,每个 GM204 核芯拥有 2048 个计算单元,拥有 8G 显存,单精度浮点性能可达 4.85Tflops。
  • M40 拥有一个 GM200 核芯,该核芯拥有 3072 个计算单元,拥有 12G 显存,单精度浮点性能可达 7Tflops。
  • K40 拥有一个 GK110 核芯,该核芯拥有 2880 个计算单元,拥有 12G 显存,单精度浮点性能可达 4.29Tflops。

一个 M40 的计算能力约为一个 M60 云主机的 1.44 倍,但是价格却超过 M60 的 2 倍;而 K40 云主机的计算能力不如 M60,却比 M60 贵,所以从计算能力来讲,M60 性价比最高1

1 https://zhuanlan.zhihu.com/p/27792556

这里我介绍如何使用某公有云上的 M60 GPU 服务器,强烈建议在验证阶段使用按需付费的 GPU 服务器,最好是按小时计费,这种比较划算。

  1. 选择主机

根据需要选择服务器 CPU、内存和硬盘等配置,最关键还要选择 GPU,通常 Tesla M60 足够我们使用了,如图 2-14 所示。

AI安全之对抗样本入门(31):打造对抗样本工具箱 2.10

图 2-14 选择主机
  1. 其他设置

设置服务器名称以及登录密码,如图 2-15 所示。

AI安全之对抗样本入门(31):打造对抗样本工具箱 2.10

图 2-15 其他设置
  1. 服务器概况

服务器安装完成后,界面显示使用了一块 GPU Tesla M60,如图 2-16 和图 2-17 所示。

AI安全之对抗样本入门(31):打造对抗样本工具箱 2.10

图 2-16 服务器概况(一)

AI安全之对抗样本入门(31):打造对抗样本工具箱 2.10

图 2-17 服务器概况(二)
  1. 运行测试程序

我们在 GPU 服务器上运行经典的使用 CNN 识别 MNIST 的例子,这个例子在我的 Mac 本上训练 12 轮需要花费将近 2 个小时。我们发现程序运行时加载了 CUDA,它是在 GPU 上运行深度学习算法的基础:

复制代码
[root@keras001 ~]# python keras-demo.py
Using TensorFlow backend.
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally

然后我们继续观察,发现程序提示信息显示,加载了 GPU Tesla M60,内存约 8G:

复制代码
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: Tesla M60
major: 5 minor: 2 memoryClockRate (GHz) 1.1775
pciBusID 0000:00:15.0
Total memory: 7.93GiB
Free memory: 7.86GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y

运行完整的程序大约需要 3 分钟,此速度完胜了我的 Mac 本。

  1. 手工安装深度学习库

有时候需要根据软硬件环境自己选择安装对应的深度学习库,其中最重要的是看 cuDNN 和 CUDA 的版本,查看服务器的 cuDNN 和 CUDA 版本的方法为:

复制代码
#CUDA 版本
cat /usr/local/cuda/version.txt
#cuDNN 版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#或者 cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2

AI安全之对抗样本入门(31):打造对抗样本工具箱 2.10

购书地址 https://item.jd.com/12532163.html?dist=jd

评论

发布