win10+tensorflow-gpu 1.4+python 3.5详细配置

    由于最近刚给实验室购置的一台高性能工作站配置了win10+tensorflow-gpu 1.4环境,不免感叹网上的教程鱼龙混杂,为避免下次重装时再费一番时间寻找各种教程,特将配置流程记录于此。因为每台机器的硬件配置不同,本文不一定适合所有读者,配置前需仔细检查自己的电脑配置是否合适,不过配置原理相差无几。


本文配置环境如下:台式机(win10+ubuntu 16.0.4 LTS双系统、2T硬盘+Geforce GTX 1080)

                                     tensoflow-gpu 1.4+python 3.5(安装anconda)


win10配置tensoflow-gpu 1.4必须要求python3(最好是3.5),不支持python2,nVidia显卡性能评分大于3,cdua 8(官方推荐)和cudnn v6(官方推荐,最好不要用v7,不然测试tensorflow时会提示找不到文件,虽然可以通过改名称解决该问题,但总觉得不太好),下面开始正式的配置。


第一步 更新Nvidia显卡驱动

     配置前最好将nvidia显卡驱动更新至最新版本,可避免安装cuda时发生一些未可知的错误。点击GeForce experience可自动下载安装更新。win10+tensorflow-gpu 1.4+python 3.5详细配置_第1张图片



第二步 安装python3.5

     通过安装anaconda来配置python3.5环境可便于后期对python及其扩展包的管理,在anaconda官网下载anaconda 64 windows安装包(注意此时的安装包已经升级为3.6了,后面可通过conda命令安装3.5),点击安装

一直点击默认直到下图

win10+tensorflow-gpu 1.4+python 3.5详细配置_第2张图片

此处两个勾都勾上(添加环境变量,后面就不用手动添加了),然后等待安装完成即可,查看环境变量win10+tensorflow-gpu 1.4+python 3.5详细配置_第3张图片,可看到已经自动为我们添加了环境变量,在cmd窗口输入python,出现如下信息win10+tensorflow-gpu 1.4+python 3.5详细配置_第4张图片,说明已经配置好了python3.5。



第三步 安装pycharm community

     去pycharm官网下载最新版的pycharm community(一款非常好用的python IDE工具),然后点击安装

安装过程中可跳过安装插件。打开pycharm,win10+tensorflow-gpu 1.4+python 3.5详细配置_第5张图片

点击configure->settings,修改“project interpreter”,不会用或者暂时用不到virtual env的可以设置python编译器为system interpreter,如图

win10+tensorflow-gpu 1.4+python 3.5详细配置_第6张图片

设置完毕后可以开始创建python工程文件。



第四步 安装tensoflow-gpu 1.4 

     pip安装—tensorflow官网推荐了三种安装tensorflow的方式,个人比较喜欢使用pip安装,简单有效。下面开始使用pip安装.

 

注意:一些博客中提到安装tensorflow前需要创建python3.5或python2.7的环境,如果读者安装了多个版本的python且都要用到tensoflow,则需要创建对应的python版本环境,如果只是用到一个版本,则不创建也行,或者等后期用到了再创建也不迟,本文只用python3.5.


(1)cmd下检查是否安装了pip及其版本(版本较低需升级至最新版本)

升级至最新版本

win10+tensorflow-gpu 1.4+python 3.5详细配置_第7张图片


(2)修改pip下载源为清华源——Windows下更换pip源为清华源

          修改源后下载速度会大大提高


(3)下载tensorflow

win10+tensorflow-gpu 1.4+python 3.5详细配置_第8张图片


下载好的tensorflow在

win10+tensorflow-gpu 1.4+python 3.5详细配置_第9张图片



第五步 安装cuda和cudnn

    

安装好tensorflow后还需要cuda和cudnn加速,cudnn是专门为deep learning准备的加速库。


1. 安装cuda——点击cuda_8.0.61_win10.exe直接安装

win10+tensorflow-gpu 1.4+python 3.5详细配置_第10张图片

然后默认点击直至选择“自定义安装”

win10+tensorflow-gpu 1.4+python 3.5详细配置_第11张图片

不用安装Geforce experience和驱动(之前已经更新过了)

win10+tensorflow-gpu 1.4+python 3.5详细配置_第12张图片

默认安装位置开始安装

win10+tensorflow-gpu 1.4+python 3.5详细配置_第13张图片


安装完成后配置cuda的环境变量

     一般来说安装cuda的过程中即已配置好了cuda环境变量,若没有配置需手动配置

win10+tensorflow-gpu 1.4+python 3.5详细配置_第14张图片win10+tensorflow-gpu 1.4+python 3.5详细配置_第15张图片


测试cuda是否安装成功——步骤见该作者博客第四步


提示:cuda安装地址见环境变量


win10+tensorflow-gpu 1.4+python 3.5详细配置_第16张图片

图中显示如上信息表示安装成功。


2. 安装cudnn——在nvidia官网下载cudnn v6.0,解压得到一个“cuda”文件夹。

win10+tensorflow-gpu 1.4+python 3.5详细配置_第17张图片win10+tensorflow-gpu 1.4+python 3.5详细配置_第18张图片

然后把cuda这三个目录下的文件分别拷贝到自己电脑cuda的安装目录下的相应文件位置

win10+tensorflow-gpu 1.4+python 3.5详细配置_第19张图片

win10+tensorflow-gpu 1.4+python 3.5详细配置_第20张图片

win10+tensorflow-gpu 1.4+python 3.5详细配置_第21张图片

拷贝完后这时已经安装好了cudnn,下面开始导入tensorflow。



第六步 导入tensorflow并测试

    

注意:若导入tensorflow时出现提示找不到cuda中的某个指定文件,则建议重启电脑使环境变量生效。


成功导入后不会出现任何信息,如下图。


下面使用一个简单的例子来测试TensorFlow

win10+tensorflow-gpu 1.4+python 3.5详细配置_第22张图片

结果正确,测试成功。


在pycharm中使用TensorFlow

首先检查编译器中是否导入了TensorFlow库

win10+tensorflow-gpu 1.4+python 3.5详细配置_第23张图片


然后使用mnist数据集进行测试

import tensorflow as tf
# import tensorflow.examples.tutorials.mnist.input_data as input_data  #下载数据集
from tensorflow.examples.tutorials.mnist import input_data  # 读取下好的数据集

mnist = input_data.read_data_sets("MNIST_data", one_hot=True)  # mnist数据集4个文件放在MNIST_data文件夹

x = tf.placeholder(tf.float32, [None, 784])  # 28*28维
y_actual = tf.placeholder(tf.float32, shape=[None, 10])


# 定义一个函数,用于初始化所有的权值 W
def weight_variable(shape):
    initial = tf.truncated_normal(shape, stddev=0.1)
    return tf.Variable(initial)


# 定义一个函数,用于初始化所有的偏置项 b
def bias_variable(shape):
    initial = tf.constant(0.1, shape=shape)
    return tf.Variable(initial)


# 定义一个函数,用于构建卷积层
def conv2d(x, W):
    return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')


# 定义一个函数,用于构建池化层
def max_pool(x):
    return tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')


# 构建网络
x_image = tf.reshape(x, [-1, 28, 28, 1])  # 转换输入数据shape,以便于用于网络中
W_conv1 = weight_variable([5, 5, 1, 32])
b_conv1 = bias_variable([32])
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)  # 第一个卷积层
h_pool1 = max_pool(h_conv1)  # 第一个池化层

W_conv2 = weight_variable([5, 5, 32, 64])
b_conv2 = bias_variable([64])
h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)  # 第二个卷积层
h_pool2 = max_pool(h_conv2)  # 第二个池化层

W_fc1 = weight_variable([7 * 7 * 64, 1024])
b_fc1 = bias_variable([1024])
h_pool2_flat = tf.reshape(h_pool2, [-1, 7 * 7 * 64])  # reshape成向量
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)  # 第一个全连接层

keep_prob = tf.placeholder("float")
h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)  # dropout层

W_fc2 = weight_variable([1024, 10])
b_fc2 = bias_variable([10])
y_predict = tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)  # softmax层

cross_entropy = -tf.reduce_sum(y_actual * tf.log(y_predict))  # 交叉熵
train_step = tf.train.GradientDescentOptimizer(1e-3).minimize(cross_entropy)  # 梯度下降法
correct_prediction = tf.equal(tf.argmax(y_predict, 1), tf.argmax(y_actual, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))  # 精确度计算
sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
for i in range(20000):
    batch = mnist.train.next_batch(50)
    if i % 100 == 0:  # 训练100次,验证一次
        train_acc = accuracy.eval(feed_dict={x: batch[0], y_actual: batch[1], keep_prob: 1.0})
        print('step', i, 'training accuracy', train_acc)
    train_step.run(feed_dict={x: batch[0], y_actual: batch[1], keep_prob: 0.5})

test_acc = accuracy.eval(feed_dict={x: mnist.test.images, y_actual: mnist.test.labels, keep_prob: 1.0})
print("test accuracy", test_acc)


结果如下win10+tensorflow-gpu 1.4+python 3.5详细配置_第24张图片


测试成功,现在在cmd和pycharm IDE中均能使用TensorFlow了,TensorFlow配置也就完成了。

















     


     


你可能感兴趣的:(Tensorflow)