zoukankan      html  css  js  c++  java
  • TensorFlow学习笔记0-安装TensorFlow环境

    TensorFlow学习笔记0-安装TensorFlow环境

    作者: YunYuan

    转载请注明来源,谢谢!

    写在前面

    • 系统: Windows Enterprise 10 x64

    • CPU:Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz

    • GPU: NVIDIA GeForce GTX 1050 Ti

      所以本笔记记录Win10 64位系统下,TensorFlow的GPU版开发环境的搭建。

    TensorFlow-GPU环境安装

    1. 首先下载安装Anaconda,版本不受限制,最新版即可,我这里是Anaconda3-5.2.0-Windows-x86_64;注意勾选设置环境变量

    2. https://github.com/fo40225/tensorflow-windows-wheel下载一个你想下载的tensorflow的版本,这里分别依次选择tensorflow-windows-wheel/1.10.0/py36/GPU/
      下载cuda92cudnn72avx2文件夹下的*.whl文件,我下载的是tensorflow_gpu-1.10.0-cp36-cp36m-win_amd64.whl,可以看到这里的文件名给出了配置要求,cuda 9.2版本,cudnn要求7.2版本,记下这两个版本号。

    3. https://developer.nvidia.com/cuda-toolkit-archivehttps://developer.nvidia.com/rdp/cudnn-archive分别下载CUDA和CUDNN相应的版本:cuda_9.2.148_win10patch包;以及cudnn7.2。安装CUDA及patch包;然后将解压Cudnn后得到的三个小文件夹(include,bin,lib)复制到CUDA的安装目录(默认安装目录C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.2)即可;

    4. 在开始菜单里打开 Anaconda promt(最好以管理员打开),输入conda --version以验证conda是否安装成功;

    5. 在Anaconda promt中输入conda info --envs 以检查目前都有哪些环境;

    6. 创建新环境conda create --name tf python=3.6,其中环境名叫做tf,中间会让输入y/n,按y即可;如果后面需要删除环境conda remove -n tf --all

    7. 进入该环境 activate tf

    8. 检查Python版本 python --version

    9. 进入你.whl文件所在的目录,输入pip install tensorflow_gpu-1.10.0-cp36-cp36m-win_amd64.whl即可;

      如果确定以后还需要使用OpenCV,也可安装pip install opencv-pythonOpenCV包(如果你没听过OpenCV是什么,请自动忽略该语句)

    10. 在当前环境下输入python进入python编辑环境,输入以下代码进行测试

    import tensorflow as tf
    hello = tf.constant("Hello, Tensorflow!")
    sess = tf.Session()
    print(sess.run(hello))
    
    a=tf.constant(10)
    b = tf.constant(20)
    print(sess.run(a+b))
    

    测试环境

    1. 安装Spyder并测试:

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

    在spyder里对tensorflow说Hello!

    import tensorflow as tf
    hello = tf.constant("Hello, Tensorflow!")
    sess = tf.Session()
    print(sess.run(hello))
    
    1. 进一步测试:

    首先看看tensorflow是不是正常安装并可以导入了:

    测试代码一:

    import tensorflow as tf
    a = tf.test.is_built_with_cuda()  # 判断CUDA是否可以用
    b = tf.test.is_gpu_available(
    cuda_only=False,
    min_cuda_compute_capability=None
    )  # 判断GPU是否可以用
    print(a)
    print(b)
    

    输出结果是:

    True
    True
    

    代表CUDA和GPU可用

    测试代码二:

    import tensorflow as tf
    #Creates a graph.
    
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)
    
    #Creates a session with log_device_placement set to True.
    sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
    
    #Runs the op.
    print(sess.run(c))
    

    输出结果是:

    [[22. 28.] [49. 64.]]
    
    1. 利用GPU测试TensorFlow的运行情况

    下面是直观的看出代码有没有在使用GPU

    测试代码三:

    import tensorflow as tf
    with tf.device('/cpu:0'):
      a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')
      b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')
    with tf.device('/gpu:1'):
     c = a + b
    sess =tf.Session(config=tf.ConfigProto(log_device_placement=True))
    sess.run(tf.global_variables_initializer())
    print(sess.run(c))
    

    注意

    1. 上述测试代码三中可能报错,你需要更改代码为

      sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True))

    其中

    • allow_soft_placement=True 表明:计算设备可自行选择,如果没有这个参数,会报错。因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。

    • log_device_placement=True 表明:计算设备的日志log文件会实时显示(使用Python命令行时会显示,使用spyder时不显示,使用spyder可以使用性能分析工具进行查看)。

    先不急着运行,打开任务管理器,点击 性能 ,找到你自己英伟达显卡的GPU那一栏,点击一下,可以显示GPU的利用情况,正常情况下你没运行什么程序,GPU利用率什么的都是0,没有波澜,然后你运行代码三,会发现GPU利用率开始变化了。

    更进一步

    • 上面已经完全测试了windows10系统下tensorflow-gpu的开发环境。如果你想了解的更多一点:可以尝试学习一下这段代码:
    import tensorflow as tf
    import numpy as np
    
    # 1 collect data
    x_data = np.float32(np.random.rand(200,2));
    y_data = np.matmul(x_data,[[5.2],[9.6]])+3.4;
    
    # 2 Ceate model
    W = tf.Variable(tf.random_uniform([2,1],-1,1));
    b = tf.Variable(tf.zeros([1]));
    y_ = tf.matmul(x_data,W)+b;
    
    # 3 loss function
    loss = tf.reduce_mean(tf.square(y_-y_data));
    optimizer = tf.train.GradientDescentOptimizer(0.5);
    train = optimizer.minimize(loss);
    
    # 4 Initialzer
    init = tf.initialize_all_variables();
    sess = tf.Session(config = tf.ConfigProto(allow_soft_placement=True,log_device_placement=True));
    sess.run(init);
    
    # 5 Train
    for step in range(0,201):
        sess.run(train);
        if step%10 == 0:
            print(step,np.transpose(sess.run(W)),sess.run(b));
    
    # 6 Output
    sess.close();
    

    使用pycharm开发

    如果你不喜欢Spyder或jupyter,可以使用pycharm进行开发。pycharm专业版对于学校教职工和学生是免费的。

    1. Pycham下载: https://www.jetbrains.com/pycharm/download/#section=windows
    2. 安装: 这里就不必细说,直接next就OK,中间有一步勾选.py文件关联。
    3. windows :打开hosts文件,文件的最后一行添加:0.0.0.0 account.jetbrains.com
    4. 去jetbrains官网申请注册一个学生账户:https://www.jetbrains.com/shop/eform/students
      5.重启Pycharm,选择 登陆账户。

    点击首页的Create New Project,选择工程目录,展开下面的Project Interpreter来设置解释器,选定Existing interpreter,然后点击右侧的三个点的按钮,在新窗口里左栏选择Conda Environment,右侧自动识别。如图,并勾选Make available to all projects。

    注意,Pycharm第一次启动后会自动更新其内部的程序,请等待完成后再开始编写你的代码。使用View>Scientigic Mode,Variable中的变量可以右键View as Array.
    然后即可开心玩耍啦~

    使用Visual Studio Code进行开发

    使用Visual Studio Code也可以进行python的开发。你需要安装Python插件。即可编写代码。编写完成后按F1Ctrl+Shift+P,调出命令框,输入python: select interpreter来选择解释器,点击之后可以选择你的conda的tensorflow环境下的解释器。在状态栏就可以看到"Python 3.6.9 64-bit('tf':conda)"字样,表示当前的运行环境。此时按Ctrl + F5运行代码,按F5进行调试。

    开心玩耍吧~

    个人使用体验:VS Code比Pycharm还要流畅一些~~

    写在最后

    为保证以后该环境不出幺蛾子,

    请不要更改GPU驱动

    请不要更新GPU驱动

    请不要更新GPU驱动

    如果你不慎更新了显卡驱动,按此笔记重新安装配置环境。

  • 相关阅读:
    [ZJOI2010]count 数字计数
    小雄数
    简单筛法函数
    [Noip模拟题]lucky
    欧拉线筛
    Intern Day78
    CodeForces1360C
    CodeForces1373B
    Intern Day78
    Intern Day78
  • 原文地址:https://www.cnblogs.com/charleechan/p/11008500.html
Copyright © 2011-2022 走看看