Tensorflow检验GPU是否安装成功 及 使用GPU训练注意事项
1. 已经安装cuda但是tensorflow仍然使用cpu加速的问题
电脑上同时安装了GPU和CPU版本的TensorFlow,本来想用下面代码测试一下GPU程序,但无奈老是没有调用GPU。
import tensorflow as tf
with tf.device('/cpu:0'):
a = tf.constant ([1.0, 2.0, 3.0], shape=[3], name='a')
b = tf.constant ([1.0, 2.0, 3.0], shape=[3], name='b')
with tf.device('/gpu:1'):
c = a + b
# 注意:allow_soft_placement=True表明:计算设备可自行选择,如果没有这个参数,会报错。
# 因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
sess = tf.Session(config=tf.ConfigProto (allow_soft_placement=True, log_device_placement=True))
# sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(tf.global_variables_initializer())
print (sess.run(c))
后来google了一下,发现gpu版本和cpu版本是不能同时安装的

于是按照以下指令,卸载下面的安装包
第0步:卸载protobuf
pip uninstall protobuf 第1步:卸载tensorflow
pip uninstall tensorflow
pip uninstall tensorflow-gpu 第2步:强制重新安装Tensorflow并支持GPU
pip install --upgrade --force-reinstall tensorflow-gpu 第3步:如果还没有,请设置CUDA_VISIBLE_DEVICES,所以对我来说有2个GPU就可以了
export CUDA_VISIBLE_DEVICES=0,1
一定要注意安装版本问题!!!!!!!!!!!!!!!!!!!!
2. 使用TensorFlow的注意事项
(1)训练前要用nvidia-smi来查看一下当前GPU的使用情况,不要一下子就放上去跑把大家一起挤挂了。
(2)如果机器上面的GPU之间不能够通信,那就先设定一块要用的GPU吧,在终端上面输入命令export CUDA_VISIBLE_DEVICES=0(数字是GPU的编号)。

CUDA_VISIBLE_DEVICES 指定的设备号可能与nvidia-smi给出的设备号不一致,详见CUDA_DEVICE_ORDER 环境变量说明,这种不一致性就可能导致本打算分配一个空闲设备(根据nvidia-smi数据)给CUDA应用结果分配的却是正在使用中的设备的情况。
注意:对于在代码内通过代码修改可见设备的情况,只有在代码访问GPU设备之前设置CUDA_VISIBLE_DEVICES变量才有效。 如果你模型保存之前没有转换到CPU上,那么模型重加载的时候会直接加载到GPU设备中,具体加载到哪个设备依赖于模型的device属性,一般默认为 cuda:0,即加载到系统的第一块显卡。如果我们在重加载模型前设置CUDA_VISIBLE_DEVICES,就能起到设备屏蔽的左右,而如果是模型重加载完后才设置 CUDA_VISIBLE_DEVICES, 设置无效,因为GPU设备已经被访问了。
(3)用Tensorflow创建session的时候要注意设置内存使用情况,特别是内存资源不够而且要和别人共享一块GPU的时候(留一点给别人用):
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.9)
with tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) as sess:
fraction设置使用内存的百分比。
(4)如果要用with tf.device(‘/gpu:0’):,只能够在所有运算都能在GPU上进行才可以,否则就会报错。如果一定要这样,则要指定哪些操作可以使用GPU,或者设置从GPU可以转移到CPU上运算。
(5)Win10: ImportError: DLL load failed: The specified module could not be found
版本装错了,之前是TensorFlow 1.13.0 + cuda 8.0 + cuDNN5.1,,改成TensorFlow 1.12.0就好了
参考文献:
【2】GPU上的张量流:没有已知设备,尽管cuda的deviceQuery返回“PASS”结果
【3】tensorflow 使用CPU而不使用GPU的问题解决【暂时还没遇到】
【4】Windows环境下安装TensorFlow(CPU和GPU版)
【5】关于tensorflow gpu版和cpu版网上说的容易混淆的一点【有用】
【6】Win10: ImportError: DLL load failed: The specified module could not be found #2
Tensorflow检验GPU是否安装成功 及 使用GPU训练注意事项的更多相关文章
- Mysql的学习笔记(一)--检验数据库是否安装成功以及一些入门的简单的dos命令
一:如何检验数据库是否安装成功: 1:以管理员的身份打开命令提示符,具体如何用管理员的身份打开请参考下面 https://jingyan.baidu.com/article/e73e26c0f87c2 ...
- tensorflow CUDA 9.0安装成功
berli@berli-dev:~/tensorflow$ bazel-bin/tensorflow/examples/label_image/label_image 2017-12-18 00:04 ...
- TensorFlow学习笔记1——安装
1. 准备好Anaconda环境 具体参见:http://blog.csdn.net/zhdgk19871218/article/details/46502637 2. 建立名叫TensorFlow的 ...
- Ubuntu 16.04 + CUDA 8.0 + cuDNN v5.1 + TensorFlow(GPU support)安装配置详解
随着图像识别和深度学习领域的迅猛发展,GPU时代即将来临.由于GPU处理深度学习算法的高效性,使得配置一台搭载有GPU的服务器变得尤为必要. 本文主要介绍在Ubuntu 16.04环境下如何配置Ten ...
- 2018最新win10 安装tensorflow1.4(GPU/CPU)+cuda8.0+cudnn8.0-v6 + keras 安装CUDA失败 导入tensorflow失败报错问题解决
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9747019.html 基本开发环境搭建 1. Microsoft Windows 版本 关于W ...
- Win10 TensorFlow(gpu)安装详解
Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...
- 在 Ubuntu 16.04 中安装支持 CPU 和 GPU 的 Google TensorFlow 神经网络软件
TensorFlow 是用于机器学习任务的开源软件.它的创建者 Google 希望提供一个强大的工具以帮助开发者探索和建立基于机器学习的应用,所以他们在去年作为开源项目发布了它.TensorFlow ...
- (转)Win10 TensorFlow(gpu)安装详解
Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...
- tensorflow 一些好的blog链接和tensorflow gpu版本安装
pading :SAME,VALID 区别 http://blog.csdn.net/mao_xiao_feng/article/details/53444333 tensorflow实现的各种算法 ...
随机推荐
- 使用【 ajax 】【 bootstrap 】显示出小窗口 详情内容 一些代码意思可以参考下一个文章
使用[ bootstrap ]显示出小窗口 详情内容 显示页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...
- lxml基础
节点操作: from lxml import etree # 1.创建Element对象,参数即节点名称 root = etree.Element('root') print(root) # < ...
- tsm 切记
切记不可删除节点,如果删除下面带的数据也会删除
- 制作tomcat重启.bat文件
环境是在windows下,linux不知道,没有尝试过,有机会去试试哈哈 首先创建一个restart.bat文件 创建在哪里看你开心咯 然后用记事本打开 输入以下源代码: @echo off cd / ...
- win10 安装 open live write
安装完 open live write后将Memento.OLW_V1.0.0.3.7z解压到C:\Users\pc_name\AppData\Local\OpenLiveWriter\app-0.6 ...
- 为什么实数系里不存在最小正数?(Why the smallest positive real number doesn't exist in the real number system ?)
We define the smallest positive real number as the number which is explicitly greater than zero and ...
- mo +离散化 HDU3333(听说还有离线线段树的做法 )
http://acm.hdu.edu.cn/showproblem.php?pid=3333 mo套map会T,卡了一个logN,所以要先离散化处理 #define _CRT_SECURE_NO_WA ...
- jcgrid
1.jcgrid实现 <span class="JcGrid" id="MyGrid" listdata="Rds.List.UserList& ...
- 转:HashMap实现原理分析(面试问题:两个hashcode相同 的对象怎么存入hashmap的)
原文地址:https://www.cnblogs.com/faunjoe88/p/7992319.html 主要内容: 1)put 疑问:如果两个key通过hash%Entry[].length得 ...
- 抽屉之Tornado实战(1)--分析与架构
抽屉之Tornado实战(1)--分析与架构 项目模拟地址:http://dig.chouti.com/ 知识点应用: AJAX 用于偷偷发请求 原生ajax jQuery ajax($.aj ...