环境:Ubuntu+TensorFlow

首先是GPU被其他人占用了,怎么也跑不起来最简单的TensorFlow小例子.

所以先学会如何查看显卡使用情况,转去使用其他空闲显卡.

Linux查看Nvidia显卡信息及使用情况

nvidia-smi

结合top,查找进程号对应的用户

Fan:显示风扇转速,数值在0到100%之间,是计算机的期望转速,如果计算机不是通过风扇冷却或者风扇坏了,显示出来就是N/A;

Temp:显卡内部的温度,单位是摄氏度;

Perf:表征性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能;

Pwr:能耗表示;

Bus-Id:涉及GPU总线的相关信息;

Disp.A:是Display Active的意思,表示GPU的显示是否初始化;

Memory Usage:显存的使用率;

Volatile GPU-Util:浮动的GPU利用率;

Compute M:计算模式;

周期性的输出显卡的使用情况(10s一次)

watch -n 10 nvidia-smi

直接查看哪个用户使用GPU最多  gpustat

pip install git+https://github.com/wookayin/gpustat.git@master --user

gpustat -cu

没有root权限,才加--user,个人觉得超好用!

shell分屏,终端复用软件  Tmux

sudo apt-get install tmux

https://www.cnblogs.com/kevingrace/p/6496899.html

指定空闲的GPU显卡(例如第2块卡)跑程序

在代码前加上:

import os
os.environ['CUDA_VISIBLE_DEVICES']='2'

或者命令行执行程序时:

CUDA_VISIBLE_DEVICES=2 python xxx.py


终于能用GPU了,然后跑了下MNIST with FGSM的例子:mnist_tutorial_tf.py

结果发现 报错了!!

(Loaded runtime CuDNN library: 7.0.4 but source was compiled with: 7.2.1.  CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version. If using a binary install, upgrade your CuDNN library.  If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration.)

查看cuda版本

cat /usr/local/cuda/version.txt

查看cudnn版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

如果显示没有该文件或该路径,就到对应文件中去找

解决方案

重新安装对应版本的TensorFlow(我安装的TensorFlow1.11.0太高了,cudnn7.04 估计是对应 TensorFlow1.5.0-1.9.0 吧)

pip install --upgrade --force-reinstall tensorflow-gpu==1.9.0 --user

或者安装错误提示中的cudnn对应版本(我没有服务器权限,所以此法较为麻烦)

终于能跑了!!

网上几乎也没有关于CleverHans跑实验的文章,痛苦....

TensorFlow版本对应图

https://www.tensorflow.org/install/source

如果觉得本文还不错的,能成功解决你问题的朋友,请随手点个赞吧~ 评论也可以。

版权声明:本文为博主自主原创,谢绝转载,请尊重个人成果,非常感谢!

https://www.cnblogs.com/tuji-sjp/p/10015634.html


跑对抗样本库 CleverHans 的例子时,遇到的问题的更多相关文章

  1. 用Caffe生成对抗样本

    同步自我的知乎专栏:https://zhuanlan.zhihu.com/p/26122612 上篇文章 瞎谈CNN:通过优化求解输入图像 - 知乎专栏 中提到过对抗样本,这篇算是针对对抗样本的一个小 ...

  2. 对抗样本攻防战,清华大学TSAIL团队再获CAAD攻防赛第一

    最近,在全球安全领域的殿堂级盛会 DEF CON 2018 上,GeekPwn 拉斯维加斯站举行了 CAAD CTF 邀请赛,六支由国内外顶级 AI 学者与研究院组成的队伍共同探讨以对抗训练为攻防手段 ...

  3. 对抗防御之对抗样本检测(一):Feature Squeezing

    引言 在之前的文章中,我们介绍了对抗样本和对抗攻击的方法.在该系列文章中,我们介绍一种对抗样本防御的策略--对抗样本检测,可以通过检测对抗样本来强化DNN模型.本篇文章论述其中一种方法:feature ...

  4. c/c++:动态库 静态库 linux/windows 例子 (转)

    作者:吴秦出处:http://www.cnblogs.com/skynet/本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接). C++静 ...

  5. NLP中的对抗样本

    自然语言处理方面的研究在近几年取得了惊人的进步,深度神经网络模型已经取代了许多传统的方法.但是,当前提出的许多自然语言处理模型并不能够反映文本的多样特征.因此,许多研究者认为应该开辟新的研究方法,特别 ...

  6. 【转】对抗拖库 ―― Web 前端慢加密

    0×00 前言 天下武功,唯快不破.但密码加密不同.算法越快,越容易破. 0×01 暴力破解 密码破解,就是把加密后的密码还原成明文密码.似乎有不少方法,但最终都得走一条路:暴力穷举.也许你会说还可以 ...

  7. 使用Swift打造动态库SDK和DemoAPP时所遇到的(Xcode7.3)

    使用Swift开发SDK的优点是,生成的SDK对于Obj-C或是Swift调用都不需要自己去建桥接文件,因为Swift的SDK打包时默认已经自动生成供OC调用的.h文件.OC调用时直接import,s ...

  8. 以【猫叫、老鼠跑、主人醒】为例子,使用 javascript 来实现 观察者模式 (有在线演示)

    “猫叫.老鼠跑.主人醒”是一个很古老的话题了,大家也都有各自的想法和解决方案.我也是看了很多,一开始的时候是相当的迷糊,这个怎么就是面试题了?考的是啥呀,和编程有关系吗?又是猫又是老鼠的,晕死了.后来 ...

  9. python Requests库在处理response时的一些陷阱

    python的Requests(http://docs.python-requests.org/en/latest/)库在处理http/https请求时还是比较方便的,应用也比较广泛.但其在处理res ...

随机推荐

  1. spring-boot Test for Controller

    spring-boot  controller 测试示例: 单元测试类 package com.zzhi; import com.fasterxml.jackson.databind.ObjectMa ...

  2. 巧妙使用CSS创建可以打印的页面

    用CSS创建打印页面,不必为打印而专门建立一个HTML文件,可以节省一些体力,其前提是按“WEB标准”用CSS+DIV布局HTML页面. 第一.在HTML页面加入为打印机设置的CSS文件 <li ...

  3. [csp-201509-3]模板生成系统

    #include<bits/stdc++.h> using namespace std; ; string a[N],b[N],c[N]; int main() { //freopen(& ...

  4. noip2012 P1081 开车旅行

    小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i 的海拔高度为Hi,城市 i 和城市 j ...

  5. springboot中使用Scheduled定时任务

    一:在程序入口类中添加注解@EnableScheduling @SpringBootApplication @EnableScheduling public class DemoApplication ...

  6. postman pre-request-script 操作方法记录

    上代码----自己参考下就明白了 例子1:自动登陆获取token let chatHost,chatName,chatPassword;//设置环境变量 if (pm.environment.get( ...

  7. Python Pool

    我们在使用Python时,会经常需要使用多进程/多线程的情况,以便提高程序的运行效率,尤其是跟网络进行交互,如使用爬虫时.下面我们将简单看下Python的进程池的创建,map().apply_asyn ...

  8. 【译】第九篇 Replication:复制监视器

    本篇文章是SQL Server Replication系列的第九篇,详细内容请参考原文. 复制监视器允许你查看复制配置组件的健康状况.这一篇假设你遵循前八篇,并且你已经有一个合并发布和事务发布.启动复 ...

  9. C++的各种初始化方式

    C++小实验测试:下面程序中main函数里a.a和b.b的输出值是多少? #include <iostream> struct foo { foo() = default; int a; ...

  10. Java并发编程(4)--生产者与消费者模式介绍

    一.前言 这种模式在生活是最常见的,那么它的场景是什么样的呢? 下面是我假象的,假设有一个仓库,仓库有一个生产者和一个消费者,消费者过来消费的时候会检测仓库中是否有库存,如果没有了则等待生产,如果有就 ...