cuda

2.基于梯度的攻击——FGSM

半世苍凉 提交于 2020-08-16 06:19:03
  FGSM原论文地址: https://arxiv.org/abs/1412.6572    1.FGSM的原理      FGSM的全称是Fast Gradient Sign Method(快速梯度下降法),在白盒环境下,通过求出模型对输入的导数,然后用符号函数得到其具体的梯度方向,接着乘以一个步长,得到的“扰动”加在原来的输入 上就得到了在FGSM攻击下的样本。     FGSM的攻击表达如下:       那么为什么这样做有攻击效果呢? 就结果而言,攻击成功就是模型分类错误,就模型而言,就是加了扰动的样本使得模型的loss增大。而 所有基于梯度的攻击方法都是基于让loss增大这一点来做的。 可以仔细回忆一下,在神经网络的反向传播当中,我们在训练过程时就是沿着梯度方向来更新更新w,b的值。这样做可以使得网络往loss减小的方向收敛。 那么现在我们既然是要使得loss增大,而模型的网络系数又固定不变,唯一可以改变的就是输入,因此我们就利用loss对输入求导从而“更新”这个输入。(当然,肯定有人问,神经网络在训练的时候是多次更新参数,这个为什么仅仅更新一次呢?主要因为我们希望产生对抗样本的速度更快,毕竟名字里就有“fast”,当然了,多次迭代的攻击也有,后来的PGD(又叫I-FGSM)以及MIM都是更新很多次,虽然攻击的效果很好,但是速度就慢很多了)     

mmdetection2.3.0版本安装过程,以及训练、测试、可视化等(亲测好用,很顺利)

早过忘川 提交于 2020-08-15 15:25:18
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 mmdetection2.3.0版本安装过程,以及训练、测试、可视化等(亲测好用,很顺利) 文章目录: 1 运行mmdetection2.3.0版本报错 1.1 错误解决历程 1.2 最终的解决方法 2 mmdetection2.3.0 安装过程 2.1 创建虚拟环境 2.2 安装torch和torchvison 2.3 安装mmcv 2.4 下载mmdetection 2.5 安装编译mmdet 2.6 测试环境是否可用 2.7 单GPU训练 2.8 多GPU训练 2.9 再测试集上进行测试 2.10 可视化训练的loss结果 2.11 计算训练的时间 2.12 更改训练模型保存的周期 和 从预训练模型恢复训练 mmdetection 下载20200805最新的代码: 此时的最新代码版本为: mmdetection2.3.0 我尝试在我之前的环境中运行最新的 mmdetection2.3.0版本 ,然后就报错呀,报错呀! 我之前 mmdetection2.0.0版本——》在这里 mmdetection2.3.0版本 比 mmdetection2.0.0版本 又多了一些模型,具体自己查看 1 运行mmdetection2.3.0版本报错 python tools/train.py -h 1.1

【完结】12大深度学习开源框架(caffe,tf,pytorch,mxnet等)快速入门项目

别说谁变了你拦得住时间么 提交于 2020-08-15 14:34:17
转自: https://www.jianshu.com/p/16f69668ce25 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork。 https://github.com/longpeng2008/yousan.ai 1 概述 1.1 开源框架总览 现如今开源生态非常完善,深度学习相关的开源框架众多,光是为人熟知的就有caffe,tensorflow,pytorch/caffe2,keras,mxnet,paddldpaddle,theano,cntk,deeplearning4j,matconvnet等。 如何选择最适合你的开源框架是一个问题。有三AI在前段时间里,给大家整理了 12个深度学习开源框架快速入门的教程和代码 ,供初学者进行挑选,一个合格的深度学习算法工程师怎么着得熟悉其中的3个以上吧。 下面是各大开源框架的一个总览。 在这里我们还有一些框架没有放上来,是因为它们已经升级为大家更喜欢或者使用起来更加简单的版本,比如从torch->pytorch,从theano到lasagne。另外这些框架都支持CUDA,因此编程语言这里也没有写上cuda。 在选择开源框架时,要考虑很多原因,比如开源生态的完善性,比如自己项目的需求,比如自己熟悉的语言。当然

insightface 的学习与使用

六眼飞鱼酱① 提交于 2020-08-15 10:34:39
网址: deepinsight / insightface 环境准备: (1)GPU,由于要用到GPU,所以GPU的环境比较重要。先要安装GPU的驱动,相应的教程,我在前几篇博客里写到,这里不再说明。 需要说明的是,如果你换过内核版本了,有些内核源码没有,CUDA10,9之间的区别,你需要重新安装内核DEV版本,这样在安装GPU驱动的时候,就会源码可以被驱动使用,这样才可以成功安装GPU的驱动。 (2)使用anaconda . 一般情况下,我们安装2.7. 需要其它环境,再安装。 在很多机器学习的教程里,我们看到了它使用2.7. 比如这个insightface的工程,其实可能是最初始的时候,他使用了2.7,但后来,很多优秀的模块构建在新的版本之上 ,其它很多依赖的环境都变化了; 但也不能最新3.7,因为很多要用的模块都还来不及构建。 所以比较合适的选择是3.6. conda install 在无法找到要安装的模块时,anaconda search -t conda 去寻找;注意选择与你环境相符合的版本。 当然如果你选择了3.6,一般情况下都是有的。 环境非常重要,足可以让你浪费很长的时间,做到如上两点,应该可以清晰搞定环境 。 工程理解 https://github.com/deepinsight/insightface.git 对于工程的理解

Pytorch 入门之Siamese网络

混江龙づ霸主 提交于 2020-08-15 10:05:28
首次体验Pytorch,本文参考于: github and PyTorch 中文网人脸相似度对比 本文主要熟悉Pytorch大致流程,修改了读取数据部分。没有采用原作者的 ImageFolder 方法: ImageFolder(root, transform=None, target_transform=None, loader=default_loader)。而是采用了一种更自由的方法,利用了 Dataset 和 DataLoader 自由实现,更加适合于不同数据的预处理导入工作。 Siamese网络不用多说,就是两个共享参数的CNN。每次的输入是 一对图像+1个label ,共3个值。注意label=0或1(又称正负样本),表示输入的两张图片match(匹配、同一个人)或no-match(不匹配、非同一人)。 下图是Siamese基本结构,图是其他论文随便找的,输入看做两张图片就好。只不过下图是两个光普段而已。 1. 数据处理 数据采用的是AT&T人脸数据。共40个人,每个人有10张脸。数据下载: AT&T 首先解压后发现文件夹下共40个文件夹,每个文件夹里有10张pgm图片。这里生成一个包含图片路径的train.txt文件共后续调用: def convert(train= True): if (train): f =open(Config.txt_root, ' w ' )

如何安装tensorflow-gpu 2020.5.30测试可用

谁说我不能喝 提交于 2020-08-15 07:17:06
如何安装tensorflow-gpu 2020.5.30测试可用 python的安装 Anaconda的安装 CUDA的安装 cuDNN的安装 python的安装 虽然到5月30号为止python已经更新到3.7.7的版本了,但是建议安装时仍然使用3.7.0版本的。 之前有过安装最新3.7.7版本的后不适配的情况产生。3.7.0肯定不存在什么问题,其他版本的可不可以用大家可以在下方留言。 推荐一个python的下载地址,可能是知道的人少的原因。下载真的是超级快。 下载链接: python下载 大家都到需要安装tensorflow-gpu的程度了,应该就不需要在这科普python的安装,不知道的小伙伴可以在网上搜一下。 Anaconda的安装 直接放链接,使用什么版本对我们装tensorflow-gpu没什么影响。 我安装的是Anaconda3-5.3.0-Windows-x86_64,同样不建议从官网下载,实在是太慢了,下载链接: anoconda下载 CUDA的安装 与python的理由类似,不推荐使用最新的CUDA10.2版本的,我用的是CUDA10.1版本的。 这个直接从官网下载就行,下载速度还是挺快的。 下载链接: CUDA10.1下载 选好想要下载的版本,点击右下角的Download就行了。 加下来就是漫长的等待 。。。 安装位置最好是默认,没有试过更改路径

linux下实现Python调用海康威视SDK

为君一笑 提交于 2020-08-15 05:14:11
---作者疆,未经允许,严禁转载,违权必究--- ---欢迎指正,需要源码和文件可站内私信联系--- ----------- 点击此处链接至博客园原文 ----------- 功能说明:将C++版的海康威视官方SDK封装、编译成动态共享对象(linux中称为DSO,Dynamic Shared Objects,windows中称动态链接库),供Python调用实现相关功能 运行环境:ubuntu14.04或ubuntu16.04、opencv2.4.13.5或opencv2.4.13.6、swig3.0.8、codeblocks16.01、Python2.7.6(仅在上述运行环境中验证过该博客有效性) 一、相关介绍 参考链接: swig扩展opencv Python调用C++ (极重要参考) 本节主要介绍在linux系统下将C++源文件封装、编译为.so动态共享对象的大致流程和细节。swig是simplified wrapper and interface generator的缩写,是一个非常优秀的开源工具,支持将 C/C++代码与任何主流脚本语言相集成。其中,必须编写一个额外的接口文件(.i文件)来作为swig(终端工具)的入口。这里引用上文中(未调用opencv的简单)例子对该流程进行叙述。(若调用了opencv函数,则需利用opencv-swig接口文件,将在“四

百度AIstudio服务器实现yolo3批量图片测试保存

北慕城南 提交于 2020-08-14 12:04:58
在aistudio服务器上配置深度学习环境 本文采用的百度aistudio服务器配置为NVIDIA-SMI 396.37+ubuntu16.04.1+cuda 9.0+cudnn 7.6.0 安装cuda9.0 wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run 新建一个目录 : mkdir cuda-9.0 安装cuda : sh cuda_9.0.176_linux-run --silent --toolkit --toolkitpath=$HOME/cuda-9.0 (HOME改为自己的路径) 配置cuda环境 使用 vi ~/.bashrc 命令行打开环境配置文件 在文件末尾添加(注意路径是否需要修改) export PATH = / home / aistudio / cuda - 9.0 / bin$ { PATH : + : $ { PATH } } export LD_LIBRARY_PATH = / home / aistudio / cuda - 9.0 / lib64$ { LD_LIBRARY_PATH : + : $ { LD_LIBRARY_PATH } } source ~/

Ubuntu k80深度学习环境搭建

走远了吗. 提交于 2020-08-14 11:04:53
英伟达驱动安装 英伟达驱动下载: https://www.nvidia.cn/Download/driverResults.aspx/135493/cn/ 由于是驱动的冲突,那么自然是要杀掉和显卡结合不是那么紧密的草根板驱动nouveau了,加入黑名单是我们要做的第一件事,这样启动以后就不会默认使用草根驱动; cd /etc/modprobe.d/ # 文件夹下创建 touch blacklist-nouveau.conf vim blacklist-nouveau.conf blacklist-nouveau.conf 中加入黑名单 blacklist nouveau options nouveau modeset=0 # 更新的blacklist update initramfs -u命令得到 # 重启系统,强力保证blacklist生效 reboot # 查看是否vouveau真的被禁止掉了,如果没有任何内容出现,那么草根驱动被禁止掉了 lsmod | grep nouveau 下载NVIDIA官方的K80显卡驱动,一般驱动都是通过deb包进行安装,但是安装后会加入OpenGL的驱动,所以必须得使用.run的文件,.run文件下载地址: https://www.nvidia.cn/Download/driverResults.aspx/135493/cn/ 如果不用

tf.device()指定tensorflow运行的GPU或CPU设备

荒凉一梦 提交于 2020-08-14 09:06:22
在tensorflow中,我们可以使用 tf.device() 指定模型运行的具体设备,可以指定运行在GPU还是CUP上,以及哪块GPU上。 设置使用GPU 使用 tf.device('/gpu:1') 指定Session在第二块GPU上运行: import tensorflow as tf with tf.device('/gpu:1'): v1 = tf.constant([1.0, 2.0, 3.0], shape=[3], name='v1') v2 = tf.constant([1.0, 2.0, 3.0], shape=[3], name='v2') sumV12 = v1 + v2 with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: print sess.run(sumV12) ConfigProto() 中参数 log_device_placement=True 会打印出执行操作所用的设备,以上输出: 如果安装的是GPU版本的tensorflow,机器上有支持的GPU,也正确安装了显卡驱动、CUDA和cuDNN,默认情况下,Session会在GPU上运行: ​​​​​​ import tensorflow as tf v1 = tf.constant([1.0, 2.0