随着近两年tensorflow越来越火,在一台新win10系统上装tensorflow并记录安装过程。华硕最近的 Geforce 940mx的机子。

TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。

tensorflow用起来就是更加方便,高效;一般情况是这样的,如果你用过其它的框架,比如caffe,那tf的感觉就如同fly一般,上手飞快。

tf有CPU和GPU两个版本,GPU的安装需要cuda和cudnn,安装过程十分简洁。

因为都要安装python,pip等包,所以直接安装Anaconda,但是一定要安装3.0版本的,地址如下:https://www.anaconda.com/download/#windows

本人安装的是python3.6版本Anaconda,直接下载根据提示安装。

  • 安装CPU版本。

CPU版本安装非常简洁,只需要在cmd输入如下指令即可:

pip install --upgrade --ignore-installed tensorflow
  • 安装GPU版本。

同样,在cmd输入如下指令:

pip install --upgrade --ignore-installed tensorflow-gpu

GPU版本就安装好了,但是如果你import tensorflow的话,提示错误如下:

ImportError: Could not find 'cudart64_90.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 9.0 from this URL: https://developer.nvidia.com/cuda-toolkit

显然,这个时候第二步需要安装cuda9.0,cuda的安装也是十分方便,下载地址:https://developer.nvidia.com/cuda-90-download-archive

下载的本地安装的exe文件即可。百度云链接: https://pan.baidu.com/s/1vbfYVMHLreMlk4yrJqp11A 密码: ddha

安装的过程中,cuda需要VS,所以请先安装VS2015或2013等VS之后,再安装Cuda,否则,以后你用VS开发项目的话会找不到cuda,也没有cuda的开发环境,意味着你成功把这两个给隔离了。

******插入广告中******

很无奈,虽然大多数安装tensorflow的同学,都已经安装了VS和cuda,但是为了追求完美,我还是成功演示一遍。

登陆VS官网,记得要登陆微软账户订阅上,才能下载,本人下载的是免费的2015社区版。有需要的同学,可看百度云链接:链接: https://pan.baidu.com/s/1jJoP6JhdwgXigfKa5FTylw 密码: nse8

接下来安装就好啦。

******广告已结束******

第三步是安装cudnn,同理登陆英伟达的官网下载cudnn7.0 for cuda9.0。百度云链接如下:

链接: https://pan.baidu.com/s/1wP5wix8GLKSi2TrCUJzQmQ 密码: gq2f

接下来就是将下载的cudnn文件夹的bin、include、lib文件夹下的文件copy到cuda9.0对应的文件夹里即可。

最终,完成了整个tensorflow GPU版本的安装。

下面就是验证tensorflow安装是否真正好了。以下面的代码为例:

import tensorflow as tf
import numpy as np # 使用 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.initialize_all_variables() # 启动图 (graph)
sess = tf.Session()
sess.run(init) # 拟合平面
for step in xrange(0, 201):
sess.run(train)
if step % 20 == 0:
print step, sess.run(W), sess.run(b)

运行后报错:

SyntaxError: invalid syntax

这是因为python3.0版本对print进行了改进,print变成了函数,因此最后一句应该修改为:

print (step, sess.run(W), sess.run(b))

继续运行,又报错:

C:\Users\91612\Anaconda3\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
WARNING:tensorflow:From C:\Users\91612\Anaconda3\lib\site-packages\tensorflow\python\util\tf_should_use.py:118: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.global_variables_initializer` instead.
2018-04-12 10:34:11.748103: I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2018-04-12 10:34:12.473410: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1344] Found device 0 with properties:
name: GeForce 940MX major: 5 minor: 0 memoryClockRate(GHz): 1.2415
pciBusID: 0000:01:00.0
totalMemory: 2.00GiB freeMemory: 1.66GiB
2018-04-12 10:34:12.473725: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1423] Adding visible gpu devices: 0
2018-04-12 10:36:24.849943: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:911] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-04-12 10:36:24.850068: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:917] 0
2018-04-12 10:36:24.850685: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:930] 0: N
2018-04-12 10:36:24.852802: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1041] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1429 MB memory) -> physical GPU (device: 0, name: GeForce 940MX, pci bus id: 0000:01:00.0, compute capability: 5.0)
Traceback (most recent call last):
File "example.py", line 27, in <module>
for step in xrange(0, 201):
NameError: name 'xrange' is not defined

主要是两个错误,initialize_all_variables应该修改为最新的global_variables_initializer;然后python3.0将xrange取消了,只有range函数,因此需要把xrange改为range。

另外,我们还看到一个warning,这主要是因为numpy和h5py之间的版本冲突,主要的解决方法有三个:

  • 对numpy版本进行降级,查看本机安装的numpy版本直接import numpy之后 print (numpy.version.version),本机是1.14.2,降级到稳定的1.13版本;
#自动安装1.13.0,卸载已安装的1.14.2
pip install numpy==1.13.0
  • 将tensorflow版本降低到1.5.0以下,直接tf.__version__查看本机安装的是1.7.0,因为1.5.0以下是不存在这个冲突的,这个可在安装的时候指定版本;
  • 不用管这个warning,事实上这个警告没啥影响,可以眼不见心不烦。例如:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore",category=FutureWarning)

就这样,完成了tensorflow的完整安装,事实上这很快就可以完成了,于是乎,我们运行上面的栗子,可以看到:

0 [[-0.11355552  0.47500253]] [ 0.4552581]
20 [[ 0.03362741 0.25130805]] [ 0.30422428]
40 [[ 0.08393362 0.21267535]] [ 0.30089444]
60 [[ 0.09610623 0.20312524]] [ 0.30019006]
80 [[ 0.09905535 0.20076929]] [ 0.30004054]
100 [[ 0.09977061 0.2001891 ]] [ 0.30000868]
120 [[ 0.09994424 0.20004643]] [ 0.30000189]
140 [[ 0.09998644 0.2000114 ]] [ 0.3000004]
160 [[ 0.09999672 0.2000028 ]] [ 0.30000007]
180 [[ 0.09999919 0.20000066]] [ 0.30000004]
200 [[ 0.09999977 0.20000014]] [ 0.30000004]

很完美的呈现出了答案。

TensorFlow在windows10上的安装与使用(一)的更多相关文章

  1. Tensorflow-gpu在windows10上的安装(anaconda)

    文档来源转载: http://blog.csdn.net/u010099080/article/details/53418159 http://blog.nitishmutha.com/tensorf ...

  2. MySQL-8.0.11 在 Windows10 上的安装

    下载 MySQL8.0 For Windows zip包下载地址:https://dev.mysql.com/downloads/file/?id=476233. 进入页面后可以不登录,点击底部“No ...

  3. TensorFlow在win10上的安装与使用(二)

    在上篇博客中已经详细的介绍了tf的安装,下面就让我们正式进入tensorflow的使用,介绍以下tf的特征. 首先tf有它独特的特征,我们在使用之前必须知晓: 使用图 (graph) 来表示计算任务, ...

  4. GPU版的tensorflow在windows上的安装时的错误解决方案

    1.用vs编译cuda的sample时会提示找不到"d3dx9.h"."d3dx10.h"."d3dx11.h"头文件的错误,如果没有安装这 ...

  5. TensorFlow在win10上的安装与使用(三)

    本篇博客介绍最经典的手写数字识别Mnist在tf上的应用. Mnist有两种模型,一种是将其数据集看作是没有关系的像素值点,用softmax回归来做.另一种就是利用卷积神经网络,考虑局部图片像素的相关 ...

  6. gitblit在windows10上的安装及服务启动报错处理

    折腾一下午算是装好了,心情不错决定分享一下.安装步骤大同小异网上都有,主要是Failed creating java 这个报错,百度出来的没有一个能给我解决的,摸索半天找出一个自己的方式.为报错而来的 ...

  7. Robot Framework -002 在Windows10上的安装

    机器人框架是使用Python实现的,并且还支持Jython(JVM),IronPython(.NET)和PyPy. 在安装框架之前,一个明显的前提条件是至少安装这些解释器之一. 下面列出了安装Robo ...

  8. Windows10 上Docker 安装运行Consul

    背景简介 Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面. 这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全服务网格. Consul需要数据平面并 ...

  9. windows10上同时安装py2和py3的情况

    2018-06-14  16:14:51 1.同时安装python2和python3的时候,pip只是其中一个版本,使用对应Python版本的pip时,在命令行分别输入如下命令: 查看不同Python ...

随机推荐

  1. apache +PHP多版本 切换的问题

    在开发中切换php版本的时候出错 经过2小时的日子排查终于找到是因为切换版本后加载的php7ts.dll模块还是原来版本的,因此保pid file 错误 解决方法 PHPIniDir "H: ...

  2. git 常用命令总结(一)

    1.初始化版本库: .进入工程根目录目录 .创建项目目录 mkdir 项目目录名称 .进入创建的项目中 cd 项目名称 pwd 显示当前目录 .项目初始化 git init //完成后会在项目目录下生 ...

  3. startActivityForResult()的用法(超好用啊)

    最近做的一个小东西遇到这样的情况,我从一个页面MainActivity修改一些内容,需要跳转到一个新的EditActivity去做修改操作,修改完成后就回到之前的MainActivity,因为信息被修 ...

  4. SQL中字符串截取、连接、替换等函数的用法

    一.SQL中SUBSTRING函数的用法1.功能:返回字符.二进制.文本或图像表达式的一部分2.语法:SUBSTRING ( expression, start, length )3.QL 中的 su ...

  5. Nim游戏学习笔记

  6. 在CentOS中安装与配置SVN的方法

    安装说明系统环境:CentOS-6.4安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件 1.检查已安装版本 #检查是否安装了低版本的SVN[root ...

  7. mapreduce方式操作hbase

    一.导入数据到hbase 1.配置hbase-site.xml指向hdfs <configuration> <property> <name>hbase.rootd ...

  8. Android 系统回收资源时进程被杀的优先级

    http://developer.android.com/guide/components/processes-and-threads.html#Processes Android 操作系统的内存回收 ...

  9. (转)Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences

    除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...

  10. fzyzojP1876 天津——泥人张

    思路一: 考虑lucas定理,mod 4意义下,每一个组合数都不能是0 所以,把n变成四进制数,然后数位dp即可 f[i][0/1][0/1/2/3]表示,前i位,有没有限制,mod 4 的值是0/1 ...