您的位置:首页 > 其它

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

2017-06-09 19:27 701 查看

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-gpu
activate tensorflow-gpu
激活这个环境


可以看到命令前面有tensorflow-gpu标识。



pip install tensorflow-gpu
import tensorflow as tf
hello=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: I
c:\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.dll
2017-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: cup
ti64_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重新解压,复制过来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐