Windows下Tensorflow-GPU的安装,Tensorboard的使用,以及过程中遇到的各种坑

来源:互联网 发布:网络语ojbk是什么意思 编辑:程序博客网 时间:2024/05/16 19:12

1、安装Anaconda

Anaconda 4.3.1 (Python 3.6)
下载页:https://www.continuum.io/downloads
安装后,如果conda下载包的速度很慢,可以执行下面的命令设置国内镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes

执行后生成C:\Users\USER_NAME目录下的.condarc文件记录着conda的配置

2、CUDA和CUDNN

cuda:https://developer.nvidia.com/cuda-downloads
版本:windows cuda 8.0

cudnn(Cuda Deep Neural Network library,是用于深度神经网络的GPU加速库,提供了forward and backward convolution, pooling, normalization, and activation layers等实现,让深度学习的研究者能够专注于训练神经网络而不是花费在 low-level GPU performance tuning上。许多深度学习框架都可以用cudnn加速,包括Tensorflow、Caffe、Theano、Torch、CNTK。):
https://developer.nvidia.com/cudnn
版本:cudnn v5.1 library for windows 7
下载cudnn需要注册一下。

1、安装cuda
2、解压cudnn,里面是三个文件夹bin、include、lib。将这三个文件夹复制到cuda的安装目录下C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0

3、安装Tensorflow

conda create -n tensorflow-gpu  python=3.6创建了一个环境,名字叫tensorflow-gpuactivate tensorflow-gpu激活这个环境

可以看到命令前面有tensorflow-gpu标识。
这里写图片描述

pip install tensorflow-gpuimport tensorflow as tfhello=tf.constant('Hello,Tensorflow')sess=tf.Session()

开启Session,会看到下图,正确的是只有I开头的消息,我这儿出现W开头的消息,也就是警告Warning,似乎和SSE指令集有关。不过不是错误我就先忽略了。
这里写图片描述

print(sess.run(hello))

正确输出‘Hello,Tensorflow’说明安装成功。

4、使用Tensorboard

这是用来可视化的工具,可以直观的观察神经网络的结构,和数据在神经网络中的变化。
D:\Anaconda路径
\envs\tensorflow-gpu\Lib\site-packages\tensorflow\examples\tutorials\mnist
这个路径下是一个经典的识别手写数字的例子。
这里写图片描述

cd PYTHON\Anaconda3\envs\tensorflow-gpu\Lib\site-packages\tensorflow\examples\tutorials\mnist首先转到这个路径下activate tensorflow-gpu激活环境python mnist_with_summaries.py执行代码

需要的数据执行代码时会自动下载,可以看到随着训练的进行精确度不断提高。

这里写图片描述

训练完成后.\mnist\tmp\tensorflow\mnist下有两个文件夹,input_data和logs。input_data下是用到的数据。logs下是训练过程中存储的数据用来显示在tensorboard上。
(我第一次运行mnist_with_summaries.py完之后,并没有看到这个文件夹,也没有看到记录数据的文件“events.out.tfevents.1497007494”,便自己新建了一个文件夹tmp,运行了第二次结果就有了,我也不知道为毛。。。)

之所以在这个文件夹下是因为代码中有如下代码,可以看到默认路径是这样的。

parser.add_argument(      '--data_dir',      type=str,      default='./tmp/tensorflow/mnist/input_data',      help='Directory for storing input data')parser.add_argument(      '--log_dir',      type=str,      default='./tmp/tensorflow/mnist/logs/mnist_with_summaries',      help='Summaries log directory')train_writer = tf.summary.FileWriter(FLAGS.log_dir + '/train', sess.graph)test_writer = tf.summary.FileWriter(FLAGS.log_dir + '/test')
tensorboard --logdir=/tmp/tensorflow/mnist/logs/mnist_with_summaries

然后在浏览器中输入localhost:6006

这里写图片描述

可能会遇到显示错误,我首先更新了谷歌浏览器,然后在论坛上看到一个人说的方法,先将命令行的目录进入/tmp/tensorflow/mnist/logs,再执行命令才能成功。ORZ。

tensorboard --logdir=mnist_with_summaries

这里写图片描述

遇到的错误

cupti64_80.dll缺失

2017-06-09 15:46:34.429648: Ic:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\stream_executor\dso_loader.cc:129] Couldn't open CUDA library cupti64_80.dll2017-06-09 15:46:34.430649: F c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\stream_executor\lib\statusor.h:205] Non-OK-status: status_status: Failed precondition: could not dlopen DSO: cupti64_80.dll; dlerror: cupti64_80.dll not found

可以在C:\Program Files\NVIDIA GPU Computing
Toolkit\CUDA\v8.0\extras\CUPTI\libx64下找到这个文件。
我看了一下我的电脑的环境变量path关于cuda只有:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\libnvvp
因此找不到这个文件。
将这个文件拷贝到
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
将cupti.lib拷贝到
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64

NVIDIA GeForce GT 640M设备是不可移动的,无法弹出或拔出

这个是因为我的驱动程序版本不对,应该装合适的显卡驱动。
右键计算机,属性,然后打开设备管理器。可以看到我的显卡是NVIDIA GeForce GT 640M。
这里写图片描述

进入这个地址http://www.nvidia.cn/download/driverResults.aspx/119496/cn,选择自己需要的系列、系统等信息,搜索,进入下载界面下载适合自己显卡的驱动程序。下载后安装好即可。
这里写图片描述

这里写图片描述

电脑上的GPU是CUDA-enabled的吗

nvidia:https://developer.nvidia.com/cuda-gpus
使用GPU的tensorflow对NVIDIA的计算能力是有要求的,可以在这个地址上看到符合要求的GPU。我的GPU类型是GeForce的,因此点开CUDA-Enabled GeForce Products可以看到符合条件的各系列GPU。

这里写图片描述

CUDNN 版本问题

2017-06-07 16:29:00.354047: E c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\stream_executor\cuda\cuda_dnn.cc:352] Loaded runtime CuDNN library: 6021 (compatibility version 6000) but source was compiled with 5105 (compatibility version 5100).  If using a binary install, upgrade your CuDNN library to match.  If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.

这个错误时因为现在用的cudnn是6.1版本的,应该用5.1版本的。下载v5.1的CUDNN重新解压,复制过来。

阅读全文
0 0
原创粉丝点击