跳坑有心得,Happy research! Win10 + GTX 2080Ti + tensorflow-gpu-1.14.0 安装; timestamp=2019-10-3

如果从GTX1080Ti平台正要升级到GTX2080Ti,看过来,你会少走很多弯路。

背景

从2018年末到现在,大半年时间里,我曾在win10平台上成功配置成功过Caffe, Pytorch, Tensorflow等深度学习平台 (Plus mac 上的Theano)。虽然过程十分繁琐和辛酸,但最终的结果也都算是成功了,自认为还是不怵配置环境的。好哎ver,这次配置又花了三天以上的时间。时间就是金钱,感觉浪费的不是时间,是满满的钱。(os: 谁说时间无价的?)

原来自己电脑的平台是Win10 + GTX1080Ti,但因为换了机器的缘故,而且GTX1080Ti已经停产,只好入手2080Ti。(os: 只好,两个字的意思,表达了我还是愿意使用熟悉的平台。)买不到老卡,新卡让我在conda的配置上投入了三天的时间。

结合我自己的经历,我希望能把自己遇到的问题,特别是那些莫名其妙的坑指出来,让自己在以后的配置中少走些弯路。

强制置顶naive problems

最大的坑,没有之一
我开始配置系统的时间是2019-9-29日,本着用老平台的精神,想用cuda9 + cudnn7 + GTX 2080Ti。这个时候查帖子,发现别人有成功经验,好哎ver,就遇到了这个大Bug。(os: 成功不容易复制。)

InternalError (see above for traceback): cudnn PoolForward launch failed

在github,stack overflow,甚至是reddit上,查了很多帖子:1.有说tensorflow版本不对的;2.有说GPU显存不够的;3.还有说cudnn不匹配cuda的。按照这些答案的排列组合我试了所有的解决方案,然而结果让我非常烦躁。一个bug接一个bug。

重要的事情说三遍:使用Conda配制平台时,要非常注意安装包的顺序和包的版本
重要的事情说三遍:使用Conda配制平台时,要非常注意安装包的顺序和包的版本
重要的事情说三遍:使用Conda配制平台时,要非常注意安装包的顺序和包的版本

成功的配置

因为已经有很多帖子在说正常创建conda环境的过程,在这里我就不在冗余叙述。

  1. 包的安装顺序及版本(create python 3.6的tensorflow环境之后,以下包的安装默认都采用conda install完成):
    首先指定安装 numpy==1.16,然后再是scipy(自动匹配numpy 版本),下来是scikit-learn(也就是sklearn)。这三个包安装完成之后,再安装其它的一些包如matplotlib等等。
    这样的安装顺序和版本让我免于碰到那些莫名其妙,让我心痛,永远都不想再碰到的,如
  • ImportError: numpy.core.multiarray failed to import
  • ImportError: No module named sklearn.metrics
  • ImportError: cannot import name ‘is_string_like’
  1. 安装tensorflow-gpu=1.14.0
    在最开始其实我安装的1.13.1版本的tensorflow,可是就是找不到gpu。如果我使用python命令
    from tensorflow.python.client import device_lib
    print(device_lib.list_local_devices())
    
    只能得到输出
    [name: "/cpu:0"
    device_type: "CPU"
    memory_limit: 268435456
    locality {
    }
    incarnation: 330382605334743
    ]
    
    而且使用nvidia-smi命令明显能查看到GPU。
    C:\Users\since                                                                 
    (tf) λ nvidia-smi                                                              
    Thu Oct 03 13:10:23 2019                                                       
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 436.48       Driver Version: 436.48       CUDA Version: 10.1     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  GeForce RTX 208... WDDM  | 00000000:02:00.0  On |                  N/A |
    | 26%   55C    P2    97W / 250W |  10129MiB / 11264MiB |     34%      Default |
    +-------------------------------+----------------------+----------------------+
                                                                              
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    |    0       644    C+G   C:\Windows\System32\MicrosoftEdgeCP.exe    N/A      |
    |    0      1260    C+G   Insufficient Permissions                   N/A      |
    |    0      1336    C+G   ...hell.Experiences.TextInput.InputApp.exe N/A      |
    |    0      1416      C   D:\Anaconda3\envs\tf\python.exe            N/A      |
    |    0      3084    C+G   C:\Windows\System32\MicrosoftEdgeCP.exe    N/A      |
    |    0      4472    C+G   C:\Windows\explorer.exe                    N/A      |
    |    0      6368    C+G   ...mmersiveControlPanel\SystemSettings.exe N/A      |
    |    0      7540    C+G   ....313.0_x64__wkybd8bw\YourPhone.exe N/A      |
    |    0      8128    C+G   C:\Windows\System32\MicrosoftEdgeCP.exe    N/A      |
    |    0      9284    C+G   ...osoft.LockApp_cwn1h2txyew\LockApp.exe N/A      |
    |    0     10044    C+G   ...3.0_x64__weky3dbbw\WinStore.App.exe N/A      |
    |    0     10060    C+G   ...6)\Google\Chrome\Application\chrome.exe N/A      |
    |    0     10536    C+G   ...DIA GeForce Experience\NVIDIA Share.exe N/A      |
    |    0     11012    C+G   ...x64__wekybd8bw\Microsoft.Photos.exe N/A      |
    |    0     11100    C+G   ...2.138.0_x64__kzf8f38zg5\SkypeApp.exe N/A      |
    |    0     12552    C+G   ...t_cwn1h2txyewy\ShellExperienceHost.exe N/A      |
    |    0     13492    C+G   ...oftEdge_wkyb38bbw\MicrosoftEdge.exe N/A      |
    |    0     16336    C+G   C:\Windows\System32\MicrosoftEdgeCP.exe    N/A      |
    |    0     20384    C+G   ...dows.Cortana_cw5n1h2txyewy\SearchUI.exe N/A      |
    +-----------------------------------------------------------------------------+
    
    这样,只能在cpu上运行代码,巨慢。
    试着升级安装1.14版本之后,平台就不再报错,而且conda会自动适配cudatookit和cudnn。能够成功运行的包列表如下(打星号的是手动安装的包,而其它包是由conda自动适配安装的)。
C:\Users\since
(tf) λ conda list
      WARNING: The conda.compat module is deprecated and will be removed in a future release.
      # packages in environment at D:\Anaconda3\envs\tf:
      #
      # Name                    Version                   Build  Channel
      _tflow_select             2.1.0                       gpu    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      absl-py                   0.8.0                    py36_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      astor                     0.7.1                      py_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      blas                      1.0                         mkl    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      boto                      2.48.0                   py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      bz2file                   0.98                     py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      certifi                   2016.2.28                py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      cudatoolkit               10.0.130                      0    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      cudnn                     7.6.0                cuda10.0_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      cycler                    0.10.0                   py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      freetype                  2.10.0               h563cfd7_1    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      gast                      0.3.2                      py_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      gensim                    3.7.3            py36h6538335_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      grpcio                    1.12.1           py36h1a1b453_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      h5py                      2.10.0          nompi_py36h422b98e_100    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      hdf5                      1.10.5          nompi_hcc15c50_1101    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      icc_rt                    2019.0.0             h0cc432a_1    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      icu                       58.2                 ha66f8fd_1    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      intel-openmp              2019.4                      245    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      joblib                    0.11                     py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      jpeg                      9c                hfa6e2cd_1001    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      keras-applications        1.0.8                      py_1    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      keras-preprocessing       1.1.0                      py_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      kiwisolver                1.1.0            py36he980bc4_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      libblas                   3.8.0                    12_mkl    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      libcblas                  3.8.0                    12_mkl    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      liblapack                 3.8.0                    12_mkl    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      libpng                    1.6.37               h7602738_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      libprotobuf               3.7.1                h1a1b453_0    http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
      markdown                  2.6.9                    py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      matplotlib*               3.1.1                    py36_1    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      matplotlib-base           3.1.1            py36h2852a4a_1    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      mkl                       2019.4                      245    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      mkl-service               2.3.0            py36hfa6e2cd_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      mock                      3.0.5                    pypi_0    pypi
      numpy*                    1.16.4           py36hc71023c_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      openssl                   1.0.1k                        1    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      pandas                    0.20.3                   py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      pip                       9.0.1                    py36_1    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      protobuf                  3.7.1            py36he025d50_0    http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
      pyparsing                 2.2.0                    py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      pyqt                      5.6.0                    py36_2    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      pyreadline                2.1                      py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      python                    3.6.7             he025d50_1005    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      python-dateutil           2.6.1                    py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      pytz                      2017.2                   py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      qt                        5.6.2           vc14h6f8c307_12    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      requests                  2.14.2                   py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      scikit-learn*             0.21.3           py36h7208079_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      scipy*                    1.3.1            py36h29ff71c_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      setuptools                36.4.0                   py36_1    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      sip                       4.18                     py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      six                       1.10.0                   py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      smart_open                1.5.3                    py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      sqlite                    3.29.0               hfa6e2cd_1    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      tensorboard               1.14.0                   py36_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      tensorflow                1.14.0          gpu_py36h305fd99_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      tensorflow-base           1.14.0          gpu_py36h55fc52a_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      tensorflow-estimator      1.14.0           py36h5ca1d4c_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      tensorflow-gpu*           1.14.0               h0d30ee6_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      termcolor                 1.1.0                    py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      tornado                   4.5.2                    py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      vc                        14.1                 h0510ff6_4    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      vs2015_runtime            14.16.27012          hf0eaf9b_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/main
      werkzeug                  0.12.2                   py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      wheel                     0.29.0                   py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      wincertstore              0.2                      py36_0    http://mirrors.ustc.edu.cn/anaconda/pkgs/free
      wrapt                     1.11.2           py36hfa6e2cd_0    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
      zlib                      1.2.11            h2fa13f4_1006    http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
C:\Users\since
(tf) λ

To sum up,遇到的坑大多是版本不匹配问题,一不小心就要入坑 (T_T)

再使用python命令

print(device_lib.list_local_devices())

就能得到输出找到GPU的信息了。

>>> print(device_lib.list_local_devices())
2019-10-03 13:13:20.438498: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2019-10-03 13:13:20.476749: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library nvcuda.dll
2019-10-03 13:13:20.788356: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties:
name: GeForce RTX 2080 Ti major: 7 minor: 5 memoryClockRate(GHz): 1.545
pciBusID: 0000:02:00.0
2019-10-03 13:13:20.823862: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2019-10-03 13:13:20.853655: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1763] Adding visible gpu devices: 0
2019-10-03 13:13:21.733324: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-10-03 13:13:21.762839: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187]      0
2019-10-03 13:13:21.776190: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0:   N
2019-10-03 13:13:21.793381: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/device:GPU:0 with 8694 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 Ti, pci bus id: 0000:02:00.0, compute capability: 7.5)
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14367383866975866771
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 9116851241
locality {
 bus_id: 1
 links {
 }
}
incarnation: 3530899654879285784
physical_device_desc: "device: 0, name: GeForce RTX 2080 Ti, pci bus id: 0000:02:00.0, compute capability: 7.5"
]
>>>

运行成功的LOSS和F1 score, cheers(Ps:每一条下降的loss曲线代表了不同的一个subject训练数据)

LossF1 score
在这里插入图片描述在这里插入图片描述

I do not hope I will talk about this any more and

HAPPY RESEARCH!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值