win10安装Tensorflow
前提:
- 保证你的pip>=8.1版本 否则利用python -m pip install -U pip 进行升级,或下载pip源文件
-
确定你的显卡是否支持cuda,以及cuda版本。利用NVIDIA控制面板查看,具体请百度。
-
Python3.5 以上。
-
安装的是tensorflow的gpu版本
安装:
之前,TensorFlow还不支持Window系统,虽然可以安装,但是极其麻烦。Google在2016年11月在开发者博客中宣布新版本 TensorFlow0.12,增加了对Window系统的支持。
安装前准备:
TensorFlow有两个版本CPU和GPU版本。GPU版本需要安装CUDA和cuDNN的支持,CPU版本直接安装即可。但是GPU图像计算强于cpu版,
1.pip升级
首先查看电脑是否支持CUDA。确保你的Python版本是3.5 64位。确保你有稳定的网络连接。确保你的pip版本 >= 8.1。用 pip -V 查看当前 pip 版本,用 python -m pip install -U pip 升级pip 。
然后可以开始下载 CUDA 和 cuDNN 的安装包了,注意版本号,我的版本分别是 Ccuda_8.0.44_win10.exe和 cudnn-8.0-windows10-x64-v6.0。
2.cuda安装
本人的机器支持GPU,所以我安装的是GPU版本。
安装cuda https://developer.nvidia.com/cuda-downloads
将下载的文件解压,运行安装程序,安装过程屏幕可能会闪烁,安装时间有点长。安装之后系统变量会自动为你添加上。
测试一下是否安装成功,命令行输入nvcc –V ,看到版本信息就表示安装成功了。
3.cudnn安装
安装cuDNN 必须和cuda版本对应 https://developer.nvidia.com/cudnn 需要填写一些问卷
cuDNN是压缩包,解压之后放在需要存放的位置。需要的位置是指和cuda对应的文件夹,比如:将cuDNN文件夹bin的文件复制到cuda相应的文件夹bin下。其他的文件夹类似。
4.配置环境变量path
关键坑(运行TensorFlow)
1.TensorFlow 是一个编程系统, 使用图来表示计算任务,图必须在Session(会话)里被启动. Session将图的op(操作)分发到诸如CPU或GPU之类的设备上运行。所以,这个时候你运行python然后import tensorflow as tf是不会报错的,但是当你要执行tf.Session()的时候可能就有问题了。这个时候将会调用cuda,我在这里遇到的问题是各种lib,dll加载不了。经过一番检查,定位到问题,cuda安装完成后默认的环境变量配置不对,CUDA_PATH是C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0,但是这样不能直接访问到bin和libnvvp下的程序包,在path中加上这两个路径即可。
2.结果还有问题…还有一个库加载不了,就是上面的cuDnn库了,很简单,解压刚才下下来的安装包,将这三个文件夹下的文件拷到CUDA对应的文件夹下面即可。
这样就大功告成了。
最关键一步:
pip3 install tensorflow-gpu
哈哈哈,就这么简单,快去测试一下吧
#coding=utf-8
import tensorflow as tf
import numpy as np
import os
#忽略python的警告信息
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# 使用 NumPy 生成假数据(phony data), 总共 100 个点.
x_data = np.float32(np.random.rand(2, 100)) # 随机输入
y_data = np.dot([0.100, 0.200], x_data) + 0.300
# 构造一个线性模型
#
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# 初始化变量
init =tf.global_variables_initializer()
# 启动图 (graph)
sess = tf.Session()
sess.run(init)
# 拟合平面
for step in range(0, 201):
sess.run(train)
if step % 20 == 0:
print (step, sess.run(W), sess.run(b))