风景怡 发表于 2022-8-14 22:03

【python】纯小白deep-high-resolution-net.pytorch安装避坑

本帖最后由 风景怡 于 2022-8-14 22:41 编辑

事先声明本人纯小白,本帖子也只是对本人在安装deep-high-resolution-net.pytorch的过程中遇到的一些坑的一个梳理和问题的解决,方便后续的人不要再踩坑了。大佬请直接无视!
    前段时间突然对机器视觉很感兴趣。。。于是就有了接下来的操作。。。。
    但是deep-high-resolution-net.pytorch这东西真是个巨坑,我本人又属于是小白类型的,整个安装过程十分曲折,终于在研究了几天之后让我给搞定了。
注意:如果不是因为达的显卡就不用再向下看了,因为需要调用CUDA核心来加速运算
1.安装deep-high-resolution-net.pytorch
      安装还是很简单的【deep-high-resolution-net.pytorch】是github上的开源项目,直接使用下面的代码可以直接进行克隆。GitHub地址在这里,里边有官方的说明文档,可以参考
         (1)打开CMD工具,然后cd 到你想要安装的目录下,在cmd中输入下面的代码就可以进行直接克隆github上的源码了
                   这里我选择的是D盘输入命令cd /d d:\,接着输入
                        git clone https://github.com/leoxiaobin/deep-high-resolution-net.pytorch.git
                     
         如果提示“git不是内部外部命令也不是执行程序”那说明你的电脑上没有安装git,需要的的话可以去官网下载安装一个链接在这里,选择你对应的版本就行了
            (2)如果电脑上没有安装git工具又懒得安装的,或者链接不上GitHub的可以直接通过网盘下载       链接:https://pan.baidu.com/s/1DQfVR6EvsDS8vTPpk7aQ9w 提取码:42ge
                   网盘下载以后选择一个你喜欢的目录直接解压就行

https://static.52pojie.cn/static/image/hrline/1.gif


2.巨坑一、运行环境的选择
       原作者的环境ubantu 16.4 (巨坑)使用 python 3.6 开发的(坑),使用了4块nVidia的显卡(巨坑)
   
   我的环境      win10   python3.6.7显卡RTX2060
       我安装的第三方库
               torch==1.0.0(重点,需要选择跟你电脑对应的版本后边会讲)
               torchvision==0.2.0(重点)
               EasyDict==1.7
               opencv-python==3.4.1.15
               shapely==1.6.4
               Cython
               scipy
               pandas
               pyyaml
               json_tricks
               scikit-image
               yacs>=0.1.5
               tensorboardX==1.6
      
    原本的电脑上安装的python版本是python3.9,但是不支持torch1.0.0,【deep-high-resolution-net.pytorch】需要torch1.0.0的版本才能运行,其他版本会报错(我尝试了torch1.12.1、torch1.2.0、torch1.7.1效果都不好)
      后来无奈换成了python3.6.7版本。注意:如果你的电脑中有多个版本的python的话后续安装torch可能会报错。
      这里我个人建议安装python3.6如果之前有安装过其他版本的一定要卸载干净

https://static.52pojie.cn/static/image/hrline/1.gif


3.CUDA的安装
(1)CUDA的安装
      如果你的显卡属于以下类型的话需要安装CUDA10.0,如果不是建议安装9.0。千万不要两个都装会报错的
GeForce GTX 1650
GeForce GTX 1660
GeForce GTX 1660 Ti
GeForce RTX 2060
GeForce RTX 2060 Super
GeForce RTX 2070
GeForce RTX 2070 Super
GeForce RTX 2080
GeForce RTX 2080 Super
GeForce RTX 2080 Ti
Titan RTX
Quadro RTX 4000
Quadro RTX 5000
Quadro RTX 6000
Quadro RTX 8000
Tesla T4
   选择一个适合你自己显卡的CUDA进行安装
      CUDA9.0英伟达官网链接在这里
      CUDA10.0英伟达官网链接在这里
         不想从官网下载的可以从百度网盘下载   
         CUDA10.0   链接:https://pan.baidu.com/s/10zCCzcF-qiMc9PpuVOmFGw 提取码:64o2
         CUDA9.0   链接:https://pan.baidu.com/s/1tCmcKPTm0SPsze2GrhXTpQ提取码:mefw
      选择好以后下载安装就行

       安装完成后会自动添加环境变量,不过保险起见还是再检查一下
       右键点击此电脑-->属性-->高级系统设置-->环境变量
       主要查看CUDA_PATH有没有添加上,变量值就是你CUDA的安装目录,例如我的就是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0

用户变量和系统变量建议都设置一下,不然有时候会出现一些莫名奇妙的BUG。CUDA_HOME这个好像并不影响后续的使用,如果没有也是不要紧的

    安装完成以后在CMD输入nvcc --version   
如果出现版本号证明已经安装成功了



(2)安装cuDNN
         去官网点这里,选择对应的cuDNN版本

      选择与你安装的CUDA版本相对应的cuDNN版本进行下载,下载完成后解压将其中的文件复制到CUDA的安装目录
      修改host_config.h文件
      前往你CUDA的安装目录C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include\crt\host_config.h,可以用记事本打开
      
          将141行的数值修改为2500,原文件该数值为1932还是几来着我忘记了,这个数值的意思是你的Visual Studio的_MSC_VER值,需要将该数值修改的大一点。如果此处不改后边同样会报错。错误信息类似

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include\crt/host_config.h(143): fatal error C1189: #error: – unsupported Microsoft Visual Studio version! Only the versions between 2013 and 2017 (inclusive) are supported!      


         至此CUDA的安装完成


https://static.52pojie.cn/static/image/hrline/1.gif


4.torch库的安装(坑)
         pytorch官网链接在这里
         torch库的下载链接在这里,进去以后向下拉会找到这样一个文件。

cu100/torch-1.0.0-cp36-cp36m-win_amd64.whl

       cu100代表你的CUDA版本为10.0,cp36代表你的python版本为3.6,win_amd64代表你的系统为Windows,64位系统

       这里我已经准备好了文件百度链接在这里链接:https://pan.baidu.com/s/1YYZQLhyCMEgF0jXGZPQnxA提取码:3wnr
         CUDA其他版本的以及python其他版本的、系统其他版本的请前往官网自行下载
      下载完成后打开CMD,cd到你下载torch的那个文件夹下,然后在CMD中输入下面的代码,就能够离线安装torch了
         pip install torch-1.0.0-cp36-cp36m-win_amd64.whl
      例如我的下载目录是“C:\Users\17309\Downloads”

      安装完torch以后,再使用pip命令安装torchvision==0.2.0,运行下列代码即可
      pip install torchvision==0.2.0

https://static.52pojie.cn/static/image/hrline/1.gif


5.其他第三方库的安装
         这里可以直接使用pip命令进行安装,不用多说什么

         
          pip install EasyDict==1.7         
          pip install opencv-python==3.4.1.15
          pip install shapely==1.6.4
          pip install Cython
          pip install scipy
          pip install pandas
          pip install pyyaml
          pip install json_tricks
          pip install scikit-image
          pip install yacs==0.1.5
          pip install tensorboardX==1.6
         

https://static.52pojie.cn/static/image/hrline/1.gif

6.Visual Studio 2017的下载
       这里必须要安装Visual Studio因为某些模块是使用C++进行编译的,如果没有的话后续编译cocoapi和deep-high-resolution-net.pytorch会报错。
       版本的话建议选择Visual Studio 2017,版本太高也不太好
       这里我准备了百度盘地址供大家下载   链接:https://pan.baidu.com/s/1vVn4rRHfXJbIFZ2v8oTTBA 提取码:5qus
       安装的时候选择这三个就行了


https://static.52pojie.cn/static/image/hrline/1.gif


7.制作库(编译)(巨坑)
         原作者是在ubantu系统下测试的,官方说明文档是用的是make命令,但是widows下没有这个命令
         还好在github上有如下解决方式

          对这三个文件进行了修改,即可运行
          我已经修改过了附上修改后的文件链接:https://pan.baidu.com/s/1ENFCo_l6H7TqCpcGT1pStw 提取码:z1j2
          百度网盘下载后直接复制到deep-high-resolution-net.pytorch的根目录进行替换,然后在pychram或者在CMD直接运行“build_windows.bat”即可完成编译安装



https://static.52pojie.cn/static/image/hrline/1.gif


8.COCOAPI的安装(坑)
       (1)安装cocoapi
               可以使用git命令来直接克隆github上的开源文件
               git clone https://github.com/cocodataset/cocoapi.git
               或者通过我的网盘下载链接:https://pan.baidu.com/s/1NqdqT5_zpuW1--cO7GpSWw 提取码:ffcl
                   下载后解压到你喜欢的任意目录即可进行下一步
       (2)编译cocoapi
               问题同上cocoapi同样是在liunx上编写的,也需要make命令,如果我们在window上直接运行“python setup.py build_ext --inplace”的话,会报错
               此时需要修改xx\cocoapi\PythonAPI中的setup.py中的第12行。此处的xx指代的是你cocoapi的盘符
                   extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99']
                     修改为
                  extra_compile_args={'gcc': ['/Qstd=c99']}
          修改之后再CMD中cd到cocoapi\PythonAPI运行下面的指令即可完成编译
python setup.py build_ext --inplace

            将编译好的pycocotools目录 拷到python的site-packages库目录即可,例如我的目录如下

C:\Users\17309\AppData\Local\Programs\Python\Python36\Lib\site-packages
https://static.52pojie.cn/static/image/hrline/1.gif
9.COCO数据集下载(文件较大,需要耐心等待)
             在你的deep-high-resolution-net.pytorch文件夹下面再创建4个文件夹,文件夹名字分别是data、log、output、models。使文件结构如下图所示

${你的deep-high-resolution-net.pytorch文件夹}├── data
├── experiments
├── lib
├── log
├── models
├── output
├── tools
├── README.md
└── requirements.txt
         这里就不多讲了就是直接下载东西

data文件夹下需要的东西         链接:https://pan.baidu.com/s/1McBFXXxDYbihTJddb47kxQ提取码:eeqs       models文件夹下需要的东西       链接:https://pan.baidu.com/s/1hYj5TKshmJP5ykXyzFFC3A   提取码:min6      
上述两个文件夹有点大需要一些时间来下载,下载完成后有几点需要注意
      data\mpii文件夹下有一个名为images.tar.gz的压缩包,需要将其解压至该目录下同名的images文件夹中
      同理在data\coco\images文件夹下也有三个压缩包test2017.zip、val2017.zip、train2017.zip也需要将他们分别解压至该目录下的同名文件夹中
      最终文件结构如下图所示

coco文件夹

${你的deep-high-resolution-net.pytorch文件夹}
|-- data
`-- |-- coco
    `-- |-- annotations
      |   |-- person_keypoints_train2017.json
      |   `-- person_keypoints_val2017.json
      |-- person_detection_results
      |   |-- COCO_val2017_detections_AP_H_56_person.json
      |   |-- COCO_test-dev2017_detections_AP_H_609_person.json
      `-- images
            |-- train2017
            |   |-- 000000000009.jpg
            |   |-- 000000000025.jpg
            |   |-- 000000000030.jpg
            |   |-- ...
            `-- val2017
                |-- 000000000139.jpg
                |-- 000000000285.jpg
                |-- 000000000632.jpg
                |-- ...

mpii文件夹

${你的deep-high-resolution-net.pytorch文件夹}
|-- data
`-- |-- mpii
`-- |-- annot
| |-- gt_valid.mat
| |-- test.json
| |-- train.json
| |-- trainval.json
| `-- valid.json
`-- images
|-- 000001163.jpg
|-- 000003072.jpg

         补充:test2017.zip、val2017.zip、train2017.zip这三个压缩包中的图片是训练AI的重要数据来源,分别对应测试集、验证集、训练集。所以是必须下载的


https://static.52pojie.cn/static/image/hrline/1.gif


10.COCO数据集的训练
         (1)训练之前的准备在experiments文件夹下有如下文件结构


├─coco
│├─hrnet
││      w32_256x192_adam_lr1e-3.yaml
││      w32_384x288_adam_lr1e-3.yaml
││      w48_256x192_adam_lr1e-3.yaml
││      w48_384x288_adam_lr1e-3.yaml
││
│└─resnet
│          res101_256x192_d256x3_adam_lr1e-3.yaml
│          res101_384x288_d256x3_adam_lr1e-3.yaml
│          res152_256x192_d256x3_adam_lr1e-3.yaml
│          res152_384x288_d256x3_adam_lr1e-3.yaml
│          res50_256x192_d256x3_adam_lr1e-3.yaml
│          res50_384x288_d256x3_adam_lr1e-3.yaml

└─mpii
    ├─hrnet
    │      w32_256x256_adam_lr1e-3.yaml
    │      w48_256x256_adam_lr1e-3.yaml
    │
    └─resnet
            res101_256x256_d256x3_adam_lr1e-3.yaml
            res152_256x256_d256x3_adam_lr1e-3.yaml
            res50_256x256_d256x3_adam_lr1e-3.yaml
             这些后缀名为yaml的是配置文件,设置参数都是在这里边来进行配置的。
             因为原作者有4块GPU,所以我们需要对这些配置文件做如下修改,这里以“w32_256x192_adam_lr1e-3.yaml”文件为例
               
             GPUS:代表了你的显卡数量我这里只有一块显卡,所以修改成了GPUS:(0,)
               原作者有4块显卡,所以他的是GPUS:(0,1,2,3)
               WORKERS:意思是要创建的线程数量,原作者创建了24个线程同时运行,我在我电脑上也试了,不行报错。我的CPU是I5-10400F,这里我使用8个线程感觉挺好。创建多个线程感觉对CPU的压力挺大,要是处理器不错的可以尝试按照24线程运行一下
                还有下边这个BATCH_SIZE_PER_GPU

            这个先不用急着改可以待会尝试运行一下,如果提示如下错误RuntimeError: CUDA out of memory. Tried to allocate 16.00 MiB (GPU 0; 6.00 G
           可以将32尝试降低为16,如果还报这个错误就继续降低,这个问题和显存有关,设置的数值越大吃的显存就越多

               
             (2)开始训练
                     cd到你的deep-high-resolution-net.pytorch根目录下分别执行下列代码
                   使用model zoo的模型对MPII数据集进行测试
python tools/test.py --cfg experiments/mpii/hrnet/w32_256x256_adam_lr1e-3.yaml TEST.MODEL_FILE models/pytorch/pose_mpii/pose_hrnet_w32_256x256.pth
                   MPII数据集上的训练      
python tools/train.py--cfg experiments/mpii/hrnet/w32_256x256_adam_lr1e-3.yaml
                   使用model zoo的模型对COCO val2017数据集进行测试
python tools/test.py --cfg experiments/coco/hrnet/w32_256x192_adam_lr1e-3.yaml TEST.MODEL_FILE models/pytorch/pose_coco/pose_hrnet_w32_256x192.pth TEST.USE_GT_BBOX False
                   COCO train2017数据集训练
python tools/train.py --cfg experiments/coco/hrnet/w32_256x192_adam_lr1e-3.yaml
                      在COCO val上可视化预测
python visualization/plot_coco.py --prediction output/coco/w48_384x288_adam_lr1e-3/results/keypoints_val2017_results_0.json --save-path visualization/results
                                          
            最后成功运行
         








平淡最真 发表于 2022-8-15 00:34

搞个虚拟环境吧3.67和你本身的3.9又不干涉

风景怡 发表于 2022-8-15 00:55

平淡最真 发表于 2022-8-15 00:34
搞个虚拟环境吧3.67和你本身的3.9又不干涉

装过Anaconda后来卸载了,原因是安装某些模块报错,又不知道怎么解决,所以干脆卸载了{:1_896:}

风景怡 发表于 2022-8-15 00:56

希望各位大佬发现帖子有错误的能及时指正

天机我泄露 发表于 2022-8-15 01:01

大佬牝!感谢分享!看下来就花了9分钟。不知道发布用了多久

virsnow 发表于 2022-10-4 12:15

这个很实用,谢谢分享。
页: [1]
查看完整版本: 【python】纯小白deep-high-resolution-net.pytorch安装避坑