Win10 安装 TensorFlow GPU版本


目录


TensorFlow简介

test

  • TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。

  • 简单来说就是一种编程系统。先把要计算的整个过程(包含变量Variable等操作OP)描述出来形成一张图,然后启动一个会话(Session),将操作派发至CPU和GPU进行计算。

  • TensorFlow由C、Python和C++编写而成,同时支持后两种语言的调用。python端提供大量OP的封装,所以在描述阶段都是用python,在会话期,可以通过导出图的方式,在C++端启动会话。

                 这里写图片描述


python环境搭建


安装python

直接上官网 https://www.python.org/

因为当前tensorflow windows版本 最高只支持python3.5,所以不能选择最新的3.6版本

下载页面

然后下载3.5版本即可,这里直接选择可执行文件 这里写图片描述

根据引导把python安装了。记得在安装选项中,要选择把python安装目录加入环境变量path中, 忘记勾选的话需要自己去更新一下环境变量。

在命令行中输入python -m pip install --upgrade pippip list --format legacy,看一下是否有响应。


相关库

numpy:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 下载。

这里写图片描述

根据之前选择的python版本下载对应的numpy,我选择的是64位的python3.5,所以选的是
numpy‑1.12.1+mkl‑cp35‑cp35m‑win_amd64.whl

scipy:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy 下载。选择版本的方式同上。

virtualenv:

考虑到兼容性的问题,尽量不要直接用pip安装库文件,先安装virtualenv,建立一个虚拟环境。

这样可以在不同虚拟环境下安装不同版本的库,满足不同的需求。并且不需要某个环境时,直接删除相应文件夹即可。

进入命令行,输入

pip install virtualenv

然后通过cd命令,改变命令行的路径,选择你想安装的虚拟环境的位置,就像这样

这里写图片描述

然后输入

virtualenv yourname yourname 可替换成自己想要的虚拟环境名字。如下图

这里写图片描述

输入D:\PROGRAMMING\MyPyEnv\yourname\activate激活虚拟环境,如果嫌麻烦,可将“D:\PROGRAMMING\MyPyEnv\yourname\”这个路径加入Path环境变量中,以后只要输入activate即可激活。

这里写图片描述

这里写图片描述

使用 deactivate 推出当前虚拟环境,如果创建了多个虚拟环境,有如下两种办法可选择

  1. 使用绝对路径的activate,激活相应的虚拟环境,使用对应的deactivate推出当前的虚拟环境
  2. 对当前阶段经常使用的虚拟环境,将其路径加入环境变量中,使用activate激活的是这个环境,对于其他的环境使用绝对路径即可

安装:

安装numpy
pip install \path\to\your\numpy.whl
安装scipy
pip install \path\to\your\scipy.whl

intsall 后面的东西替换成自己下载的whl文件路径

安装matplotlib
pip install matplotlib

安装ipython
pip install ipython


CUDA环境搭建

下载

想要在GPU上进行计算,可以使用opengl、opencl之类可以在GPU中计算以及把结果取回内存的库。

GPU的并行计算力是远大于CPU的。机器学习特别是深度学习的计算要求比较大,并且很多算法可以写成并行计算的方式,所以利用好GPU的计算力是很有必要的。

cuda是Nvidia推出的GPU并行运算架构,很多深度学习相关的库如caffe、TensorFlow,在调用GPU的时候,都使用了cuda。

TensorFlow目前支持CUDA 8.0,cuDNN 5.1,下载的时候注意版本

先去官网下载 https://developer.nvidia.com/cuda-downloads

这里写图片描述

然后下载cuDNN https://developer.nvidia.com/cudnn

CUDA只是一个并行计算架构的SDK,而cuDNN是NVIDIA官方专为深度学习提供的cuda库,里面封装
了卷积、池化等标程。

注册账号,填写一下问卷就可以下载了

这里写图片描述

安装

Windows环境下的cuda安装很容易的,直接运行安装程序,跟着向导走就行。而且还是全家桶,连Nvidia GeForce Experience之类的东西一起给你安装一遍。

这里写图片描述

然后把刚才下载的cuDNN压缩包解压缩,把里面三个文件复制到“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0” (如果安装CUDA时候,没改这个路径)

这里写图片描述

运行Sample

先安装一个visual studio 2010/2012/2013/2015,2017虽然好用,但是目前CUDA还不支持。

个人建议安装个VS2013,因为2015装起来出的问题很多、坑太多,最后还是换成13版本才成功。

进入 C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0 (ProgramData是隐藏文件夹)

选择自己安装的VS版本的sln,双击运行 这里写图片描述

可以选择编译整个解决方案,也可以只编译运行一个demo项目,主要是看一下是否安装成功。

这里就只演示其中一个项目,如果效果和我的一样,差不多就意味着安装成功了。

点击解决方案,然后在“Startup project”中选择“bilateralFilter” 双边滤波 这个项目。

这里写图片描述

Ctrl + F5, 编译运行。

这里写图片描述

+ - ,可以改变图片的清晰度

查看显卡计算力

TensorFlow要求显卡的计算力要超过3.0,官网是这么说的,实际上是不是这回事就不清楚了

怎么知道自己显卡是否支持呢?

最简单的办法就是去官网查 https://developer.nvidia.com/cuda-gpus (好像这块内容应该放在安装CUDA之前。。。。)

但是既然安装了CUDA,那就用代码查一下吧。

开一个win32 控制台工程,把下面代码复制上去

#include<stdio.h>
#include<stdlib.h>
#include "cuda_runtime.h"
#include "device_launch_parameters.h"

bool Testing()
{
    int count;
    cudaGetDeviceCount(&count);
    if (count == 0)
    {
        fprintf(stderr, "There is no device.\n");
        return false;
    }
    int i, maxMajor, maxMinor;
    bool canUseTensorflow = false;
    maxMajor = maxMinor = 0;
    for (i = 0; i < count; i++)
    {
        cudaDeviceProp prop;
        if (cudaGetDeviceProperties(&prop, i) == cudaSuccess)
        {
            fprintf(stdout, "Device number %d , computer capability : %d.%d\n", i, prop.major, prop.minor);
            if (prop.major >= 3)
            {
                canUseTensorflow = true;
                if (prop.major>maxMajor || (prop.major == maxMajor&&prop.minor > prop.minor))
                {
                    maxMajor = prop.major;
                    maxMinor = prop.minor;
                }
            }
        }
    }
    if (!canUseTensorflow)
    {
        fprintf(stderr, "There is no device supporting TensorFlow GPU version.\n");
        return false;
    }
    fprintf(stdout, "Max computer capability of this computer is %d.%d\nYou can use TensorFlow GPU version. \n", maxMajor, maxMinor);
    return true;
}

int main()
{
    Testing()
    system("pause");
    return 0;
}

这里写图片描述

根据上图,右键工程,一步步最后加上 cudart.lib

然后如下图,右键工程 ->“生成依赖项” -> “生成定制”

这里写图片描述

这里写图片描述

勾上 CUDA 8.0。

然后 Ctrl + F5,运行。之后会输出机子上每个显卡编号和对应的计算力,然后告诉你能否使用Tensorflow GPU 版本。

这里写图片描述


安装TensorFlow

这里坑还蛮多的,而且过程有点乱,第一次是用pip安装的,pip install tensorflow-gpu,出现各种错误。然后去github下载 .whl文件,GPU运行还是有问题。我还重装了一次CUDA,最后又换成了更早的nightly 版本,所以我不确定到底哪种方法最靠谱,下面列出几个安装途径,都试试吧。

出现问题可以用pip uninstall tensorflow-gpu把当前版本删了,去安装其他版本

总之方法很多,还是能装上的。下面给一个测试代码。

其实就是官方的Mnist入门Tutorial。

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

x = tf.placeholder(tf.float32, [None, 784])
y_labels = tf.placeholder(tf.float32, [None, 10])

W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
logits = tf.matmul(x, W) + b
y = tf.nn.softmax(logits)

cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=logits,labels=y_labels)
loss = tf.reduce_sum(cross_entropy)
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(loss)

correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_labels,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

sess = tf.Session()
sess.run(tf.global_variables_initializer())
for _ in range(10000):
  batch_xs, batch_ys = mnist.train.next_batch(100)
  sess.run(train_step, feed_dict={x: batch_xs, y_labels: batch_ys})

print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_labels: mnist.test.labels}))

可在ipython使用 paste cpaste命令直接复制代码运行,或者在IDE下运行

最后能运行,并且输出测试集的准确率,即成功安装

如果装的是nightly版本的tensorflow-gpu,可能会出现一下错误,可以忽略

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值