zoukankan      html  css  js  c++  java
  • windows 上面的tensorflow-GPU、cuda、cudnn 安装

    安装说明

    平台:目前可在Ubuntu、Mac OS、Windows上安装 
    版本:提供gpu版本、cpu版本 
    安装方式:pip方式、Anaconda方式 
    Tips:

    1. 在Windows上目前支持python3.5.x
    2. gpu版本需要cuda8,cudnn5.1

    安装进度

    2017/3/4进度: 
    Anaconda 4.3(对应python3.6)正在安装,又删除了,一无所有了 
    2017/3/5进度: 
    Anaconda 4.3(对应python3.6)get 
    Anaconda中python3.5.2get 
    tensorflow1.0.0get


    行文思路

    在看别人教程时候总遇到些没见过的名词,让人望而生畏。 
    所以索性从名词解释开始。 
    然后讲述TensorFlow的安装和简单示例。 
    作为自己的笔记, 
    也希望像我一样的小白看到这篇教程能觉得做起来很顺畅!


    CUDA

    CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。 
    计算行业正在从只使用CPU的“中央处理”向CPU与GPU并用的“协同处理”发展。为打造这一全新的计算典范,NVIDIA™(英伟达™)发明了CUDA(Compute Unified Device Architecture,统一计算设备架构)这一编程模型,是想在应用程序中充分利用CPU和GPU各自的优点。现在,该架构已应用于GeForce™(精视™)、ION™(翼扬™)、Quadro以及Tesla GPU(图形处理器)上。 
    来自百度百科。

    (所以我的A卡是用不成它的)

    Anaconda

    Anaconda是由Python提供支持的领先的开放数据科学平台。 Anaconda的开源版本是Python和R的高性能分发版本,包括超过100个用于数据科学的最流行的Python,R和Scala软件包。 
    来自Anaconda官方下载页面 
    具体使用见Anaconda官方教程,简单易懂!


    Anaconda初步学习

    0.下载Anaconda安装包:Anaconda官方下载地址 
    我下载的是Anaconda4.3.0For Windows 64bit(内置python3.6) 
    下载好了就安装,一直下一步。 
    1.检查Anaconda是否成功安装:conda --version 
    版本 
    (嘻嘻,第一步成功了,开心点) 
    2.检测目前安装了哪些环境:conda info --envs 
    环境监测 
    (只有一个呀!不怕,继续来!) 
    3.检查目前有哪些版本的python可以安装:conda search --full-name python 
     
    (好多呀,要哪个呢?嘻嘻当然是python3.5啦) 
    4.安装不同版本的python:conda create --name tensorflow python=3.5 
    (猜想输入python=3.5版本后,系统会自动选择一个3.5.x的版本吧) 
     
    (python3.5.3要不要?实验室服务器上是3.5.2,统一好啦!) 
     
    (好啦,GO!) 
     
    (嘻嘻!安好啦!又离成功近了一步!) 
    5.按照提示,激活之:activate tensorflow 
     
    (嘻嘻它有了一顶小帽子~代表我的当前环境哦) 
    6.确保名叫tensorflow的环境已经被成功添加:conda info --envs 
     
    (Bravo!) 
    7.检查新环境中的python版本:python --version 
     
    (^^开心开心~) 
    8.退出当前环境:deactivate 
     
    (小帽子掉了) 
    9.切换环境:activate tensorflow 
     
    想切换到哪个环境就 activate哪个~ 
    这篇文章既然是安装tensorflow的,当然要avtivate tensorflow! 
    小妖精!我来了!

    PS:想了解更多请看Anaconda官方教程,简单易懂好上手!别乱搜网上的教程,没有官方教程看着清爽!


    TensorFlow安装 
    本文是将tensorflow在原生windows系统上安装, 
    采用anocanda的安装方式, 
    安装的是cpu版本(嗯,作为AMD的显卡,掩面哭)

    Anaconda 4.3.0.1(带有python3.6) 
    在Anaconda里面配了python3.5.2 
    下面是今天的主角!(噼里啪啦)

    1.按照官网的指示: 
    pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_x86_64.whl

     
    (好吧,先是打错,接下来又这样!我不知道该怎么办了(ㄒoㄒ)/~~) 
    2.另一种尝试:pip install tensorflow

     
    (划重点了,原来是这样子!我是AMD的卡,对应的不一样!) 
    3.确认tensorflow安装成功: 
    错误尝试:直接在cmd里面键入python,然后键入import tensorflow as tf

     
    (小伙子默认的是python3.6啊啊啊啊啊,要从anaconda进入刚刚装的那个python3.5里面哦!~)

    正确尝试:进入Anaconda Prompt-python里面,进入安装的名叫tensorflow的环境(我们装的python3.5.2记得吗?~),键入python,然后再键入import tensorflow as tf 
    在这里可以找到Anaconda Prompt-python: 
     

    打开Anaconda Navigator(开始菜单->Anaconda 3->Anaconda Navigator),搞一个spyder玩,点击spyder下面的“install”,安装好就变成“Launch”了,点击就可以进去了。 

    在spyder里对tensorflow说Hello! 

    输出: 
     
    (嘿嘿嘿哈哈哈我感觉我好像成功了!!!你呢?~~)

    参考tensorflow官方文档,请上英文官网,中文社区似乎没有更新windows上的安装


    TensorFlow例程上手

    装了个新东西,我们先把它用起来吧! 
    概念什么的跑完第一个小程序再看! 
    找点成就感才好继续下去! 
    示例来源:MINIST For ML Beginners

    MINST数据集:

    1. 55000训练集,10000测试集,5000验证集
    2. 每张图片都是28pixels*28pixels

    代码:

    #获得数据集
    from tensorflow.examples.tutorials.mnist import input_data
    mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
    
    import tensorflow as tf
    
    #输入图像数据占位符
    x = tf.placeholder(tf.float32, [None, 784])
    
    #权值和偏差
    W = tf.Variable(tf.zeros([784, 10]))
    b = tf.Variable(tf.zeros([10]))
    
    #使用softmax模型
    y = tf.nn.softmax(tf.matmul(x, W) + b)
    
    #代价函数占位符
    y_ = tf.placeholder(tf.float32, [None, 10])
    
    #交叉熵评估代价
    cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
    
    #使用梯度下降算法优化:学习速率为0.5
    train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
    
    #Session
    sess = tf.InteractiveSession()
    
    #初始化变量
    tf.global_variables_initializer().run()
    
    #训练模型,训练1000次
    for _ in range(1000):
      batch_xs, batch_ys = mnist.train.next_batch(100)
      sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
    
    #计算正确率
    correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
    
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
    
    print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

    运行结果:输出显示得到模型的准确率 


    结语

    昨天花费了大半天部署环境,不但一无所获且搞得焦头烂额。今天再战,索性边做边写,好像和旁边的人在聊天一样。嗯,心情愉悦的时候容易做出东西。时间很宝贵,但还是希望你的学习曲线不要太陡峭,希望你能愉快地走进新领域。

  • 相关阅读:
    [JSOI2007][BZOJ1031] 字符加密Cipher|后缀数组
    leetcode Flatten Binary Tree to Linked List
    leetcode Pascal's Triangle
    leetcode Triangle
    leetcode Valid Palindrome
    leetcode Word Ladder
    leetcode Longest Consecutive Sequence
    leetcode Sum Root to Leaf Numbers
    leetcode Clone Graph
    leetcode Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/superjn/p/8577095.html
Copyright © 2011-2022 走看看