【两次】基于win10搭建mask_rcnn环境,并跑通实验————分享经验

一、环境搭建概括

win10+GPU+python3.6+anaconda3.5+VS2015+CUDA8.0+cudnn6.0+tensorflow1.8.0

        【啰嗦一下】:由于实验室服务器暂时用不了,本人便在阿里云上开通了ECS的GPU服务器,用起来还不错,于是便把环境搭建起来,然后跑了一下demo;不过在跑Mask_rcnn时系统盘爆满,便想着更换自己购买服务器的系统盘,结果我要崩溃了,更换过程中出现问题比较多,和阿里云协商两天也没解决我的问题,最后我说我再买个服务器,然后这个服务器释放掉并全额退款。所以在这里又重新搭建了第二次环境。

         总结这两次搭建环境遇到的问题和一些应对小经验..............希望对大家有用吧!!相互交流。

二、环境搭建流程

1、Python3.6安装

        针对这一步骤怎么说呢?看了很多博客第一步都是先做这个,但我想了很久,真的不清楚第一步为什么先安装python(知道原因的希望留言学习)。因为你后续是在anaconda里配置对应的python版本的。不管怎么说,还是说一下步骤:

(1)工具、平台

    python3的最新安装包

   先给出现在网址官网:https://www.python.org 在download中可以下载

    win10操作系统

(2)安装步骤

     下载完成后,双击安装包文件安装

勾选Add Python 3.6 to PATH(勾选此选项在安装时自动配置环境变量),点击Customize installation(自定义安装)

点击Next按钮

勾选Install for all users,再点击Install按钮

等待安装

安装成功,点击Close按钮关闭

打开cmd命令行工具,输入python,有下图回显,说明安装成功

至此Python已经安装成功!!!!

2、Anaconda3安装

(1)下载

Anaconda 官网下载地址:https://www.continuum.io/downloads 
目前最新版本是 python 3.6,默认下载也是 Python 3.6,

我使用的是 Python 3.6版本,这里使用Anaconda3.5版本,因为它默认使用的是 Python 3.6

当然,也可以在官网下载最新版本的 Anaconda3,然后根据自己需要设置成 python 版本。

(2)安装

安装较为简单,基本都是下一步,为了避免不必要的麻烦,最后默认安装路径,具体安装过程为: 
双击安装文件,启动安装程序 (本人最开始在本地电脑用CPU跑mask_rcnn时,由于路径改了,后来搭建环境弄得很麻烦)

1

点击Next

2

点击I Agree

这里写图片描述

选择你想安装的路径,之后一路默认就ok了
安装成功后测试是否安装成功,在anaconda prompt中输入conda list,如下安装成功!!!

【注意不要忘记看一下环境变量是否配置好了,一般是默认自动配置好滴】

3、VS2015社区版安装

VS2015 共有三个版本,分别是:
社区版(Community):免费提供给单个开发人员、 开放源代码项目、科研、教育以及小型专业团队!大部分程序员(包括初学者)可以无任何经济负担、合法地使用 VS2015 了。
专业版(Professional):售价 1199 美元。
企业版(Enterprise):售价 5599 美元。
(1)下载VS2015

VS2015 社区版(Community)下载地址:
迅雷下载(较快):ed2k://|file|cn_visual_studio_community_2015_x86_dvd_6847368.iso|4013920256|EB7F6605EDE67509E218E29173AC6574|/
百度网盘(较慢):http://pan.baidu.com/s/1nuClygp    提取密码:377q

以上是 Visual Studio 2015 Community 简体中文版下载地址。VS2015 比较大,有 3.73GB,建议用迅雷下载。

(2)安装VS2015

VS2015 下载完成后会得到一个镜像文件(.iso 文件),双击该文件即可开始安装。

1) 双击镜像文件后会弹出如下的对话框

选择“运行 vs_community.exe”即可进入安装程序。

2) 开始安装后,会出现等待界面(可能需要几分钟)。

3) 初始化安装程序

4) 如果你的计算机配置不恰当,VS 安装程序会给出警告

出现该警告是由于我的电脑没有安装 IE10。忽略该警告,点击“继续”按钮。

5) 接下来选择安装位置以及安装方式

这里我将 VS2015 安装在系统盘C盘里 ,你也可以安装在别的目录(如上图)。
VS2015 除了支持 C/C++ 开发,还支持 C#、F#、VB 等其他语言,我们没必要安装所有的组件,只需要安装与 C/C++ 相关的组件即可,所以这里选择“自定义”。

6) 选择要安装的组件

我们不需要 VS2015 的全部组件,只需要与 C/C++ 相关的组件,所以这里只选择了“Visual C++”,将其它用不到的组件全部取消勾选了。

7)点击“下一步”按钮,弹出如下的确认对话框

点击“安装”按钮开始安装

8) 接下来进入漫长的等待过程,可能需要半个小时左右

安装完成后,VS2015 会要求重启计算机。嗯,那就重启吧。

9) 重启完成后,打开“开始菜单”,发现多了一个叫“Visual Studio 2015”的图标,就证明安装成功了

【vs2015安装完成】

(1)你可以选择先放着后续配置cuda

(2)你也可以重启电脑,打开做简单配置开发环境和主题风格

启动 VS2015,会提示登录:

【注意】:本人在第一次搭建环境时到目前为止都是一路顺风,但是在第二次搭建环境时竟然出现各种你无法想象得到的问题,在此为大家一一列下来,供大家参考:

(1)安装VS2015时竟然一次次安装不成功,前后弄了四个小时,一直卡在那里,到了晚上11点多实验室关门,就只能放在那里希望第二天回来他就装好了,结果可想而知失败了。。。。

360截图20150814143452350.jpg

解决方法:

(1)把里面的vs文件都清一清重新安装就行

(2)控制面板,vs2015,更改,修复,然后就一路下来了

(3)ie浏览器更新到10以上

你自己试着来,反正我是卸载了重新安装,就好了。。。。

4、安装CUDA8.0

(1)安装环境

Win10
Python3.6.4
3.5以上版本都可以,目前Tensorflow只支持64位python3.5以上版本
下载安装Cuda8.0,一定要是8.0版本!下载地址https://developer.nvidia.com/cuda-80-ga2-download-archive,并按照下图选择下载本地安装包

这里写图片描述

这里写图片描述

这里写图片描述

如果安装错了记得要把之前的删除卸载干净【如果是安装了不同的版本到时没有什么冲突】

(2)安装完成后配置系统环境变量Path

TensorFlow 是一个编程系统, 使用图来表示计算任务,图必须在Session(会话)里被启动. Session将图的op(操作)分发到诸如CPU或GPU之类的设备上运行。所以,这个时候你运行python然后import tensorflow as tf是不会报错的,但是当你要执行tf.Session()的时候可能就有问题了。这个时候将会调用cuda,我在这里遇到的问题是各种lib,dll加载不了。经过一番检查,定位到问题,Cuda安装完成后默认的环境变量配置不对,不能直接访问到bin和lib\x64下的程序包,在path中加上这两个路径即可

原本安装好之后并不会有以上四个环境变量,有两个需要自己加上。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\libnvvp

附配置环境变量https://jingyan.baidu.com/article/3ea51489e1c2b752e61bbad0.html
最后在cmd里输入 echo %path% 就能查看你的是否添加进环境变量了

【验证安装成功】

方法一:现在就可以验证是否正确安装了cuda了,打开cmd,输入nvcc -V

方法二:现在想查看一下自己的cuda版本和电脑GPU信息,可以利用deviceQuery.exe,在路径...\CUDA\extras\demo_suite中,点击即可出现。

方法三:在cuda安装好后会自动下载一些example,自己运行测试一下,问题不大。

方法四:等等可以去网上查【本人在验证这里第一次安装浪费很多时间,用方法一成功,但是用方法二却失败了,并且把sample中的例子放到Vs中debug运行报错失败,然后弄了半天只能手动调试成功;但是后来看了其他博客才恍然大悟,原来这些验证都是不同的方法,如果其中一个验证失败可以先放置在那里,后续在调试;所以第二遍搭建环境的时候就变的聪明了,用第一种方法验证就打算不继续验证,谁知道手痒痒,把CUDA与VS2015配置好,直接跑了一下CUDA的例子,结果成功了!!!开心!!!】

【注意】:****这里CUDA与cudnn的版本要对应好,不然在import tensorflow时爆出版本冲突;

一般:CUDA8.0——cudnn6.0(5.1) 这里第一次搭建使用的5.1的cudnn没问题,但是第二次搭建再用5.1版本的cudnn报错让使用6.0,这里有点郁闷不解,不过在wins环境里确实麻烦!!!

           cuda9.0——cudnn7.0这里不建立使用太新版本的!!!

            ****本人在安装后发现图像依赖包安装不成功,但是也去差了很多方法,最后也没解决,就放在那里了,并又没什么影响

5、下载安装Cudnn6.0

(1)下载地址,需要注册并填问卷,下载后解压压缩包,将包内文件夹里面的内容分别拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0里面的三个文件夹中去。

(2)安装cudnn

将cudnn解压后,里面有三个文件夹,把这三个文件夹里面的东西对应放到CUDA目录下对应的文件夹里即可。

 

这样就可以了!!

6、VS2015 配置CUDA8.0

(1)打开vs2015并创建一个空win32程序,创建一个cuda_samples的解决方案和cuda_test1项目: 

(2)右键源文件–>添加–>新建项,如下图所示

(3)选择NIVIDIA CUDA7.5中 CUDA C/C++file,并在名称那填上cuda_main

(4)选择cuda_test1,点击右键–>项目依赖项–>自定义生成

(5).选择CUDA8.0【这里用的别人的图片,本人是8.0的】

(6)点击cuda_main.cu的属性

(7)在配置属性–>常规–>项类型–>选择“CUDA C/C++”

(8)项目配置【x64】

1) 包含目录配置

  • 1.右键点击项目属性–>属性–>配置属性–>VC++目录–>包含目录
  • 2.添加包含目录: 
    $(CUDA_PATH)\include

2) 库目录配置

  • 1.VC++目录–>库目录
  • 2.添加库目录: 
    $(CUDA_PATH)\lib\x64

3)依赖项

    1. 配置属性–>连接器–>输入–>附加依赖项
    1. 添加库文件: 
      cublas.lib 
      cuda.lib 
      cudadevrt.lib 
      cudart.lib 
      cudart_static.lib 
      nvcuvid.lib 
      OpenCL.lib`

注意:添加nvcuvenc.lib库文件,编译时,报找不到该文件的错误。去掉后,程序也能运行

(8)项目配置【x86(win32)】

1)包含目录配置

    1. 右键点击项目属性–>属性–>配置属性–>VC++目录–>包含目录
    1. 添加包含目录: 
      $(CUDA_PATH)\include

2)库目录配置

  • 1.VC++目录–>库目录
  • 2.添加库目录: 
    $(CUDA_PATH)\lib\Win32

3) 依赖项

    1. 配置属性–>连接器–>输入–>附加依赖项
    1. 添加库文件: 
      cuda.lib 
      cudadevrt.lib 
      cudart.lib 
      cudart_static.lib 
      nvcuvid.lib 
      OpenCL.lib`

备注: win32和x64位的lib库有差别,配置时需注意,除了上述添加的lib文件外,x64还有其他的lib库文件,如cublas.lib,如运行1.6的样例时,要添加这个库,不然会编译失败。

【测试demo】

// CUDA runtime 库 + CUBLAS 库 
#include "cuda_runtime.h" 
#include "cublas_v2.h" 
#include <time.h> 
#include <iostream> 
 
using namespace std;
// 定义测试矩阵的维度 
int const M = 5;
int const N = 10;
int main()
{
// 定义状态变量 
cublasStatus_t status; 
// 在内存中为将要计算的矩阵开辟空间 
float *h_A = (float*)malloc(N*M*sizeof(float));
float *h_B = (float*)malloc(N*M*sizeof(float));
// 在 内存 中为将要存放运算结果的矩阵开辟空间 
float *h_C = (float*)malloc(M*M*sizeof(float));
// 为待运算矩阵的元素赋予 0-10 范围内的随机数 
for (int i = 0; i<N*M; i++) {
    h_A[i] = (float)(rand() % 10 + 1);
    h_B[i] = (float)(rand() % 10 + 1);
}
// 打印待测试的矩阵 
cout << "矩阵 A :" << endl;
for (int i = 0; i<N*M; i++){
    cout << h_A[i] << " ";
    if ((i + 1) % N == 0) cout << endl;
}
cout << endl;
cout << "矩阵 B :" << endl;
for (int i = 0; i<N*M; i++){
    cout << h_B[i] << " ";
    if ((i + 1) % M == 0) cout << endl;
}
cout << endl;
/*
    ** GPU 计算矩阵相乘
    */
// 创建并初始化 CUBLAS 库对象
cublasHandle_t handle;
status = cublasCreate(&handle);
if (status != CUBLAS_STATUS_SUCCESS)
{
    if (status == CUBLAS_STATUS_NOT_INITIALIZED) {
        cout << "CUBLAS 对象实例化出错" << endl;
    }
    getchar();
    return EXIT_FAILURE;
}
float *d_A, *d_B, *d_C;
// 在 显存 中为将要计算的矩阵开辟空间 
cudaMalloc(
    (void**)&d_A, // 指向开辟的空间的指针 
    N*M * sizeof(float) // 需要开辟空间的字节数 
    );
cudaMalloc(
    (void**)&d_B,
    N*M * sizeof(float)
    );
// 在 显存 中为将要存放运算结果的矩阵开辟空间 
cudaMalloc(
    (void**)&d_C,
    M*M * sizeof(float)
    );
// 将矩阵数据传递进 显存 中已经开辟好了的空间 
cublasSetVector(
    N*M, // 要存入显存的元素个数 
    sizeof(float), // 每个元素大小 
    h_A, // 主机端起始地址 
    1, // 连续元素之间的存储间隔 
    d_A, // GPU 端起始地址 
    1 // 连续元素之间的存储间隔 
    );
cublasSetVector(
    N*M,
    sizeof(float),
    h_B,
    1,
    d_B,
    1
    );
// 同步函数
cudaThreadSynchronize();
// 传递进矩阵相乘函数中的参数,具体含义请参考函数手册。 
float a = 1; float b = 0;
// 矩阵相乘。该函数必然将数组解析成列优先数组 
cublasSgemm(
    handle, // blas 库对象 
    CUBLAS_OP_T, // 矩阵 A 属性参数 
    CUBLAS_OP_T, // 矩阵 B 属性参数
    M, // A, C 的行数 
    M, // B, C 的列数
    N, // A 的列数和 B 的行数
    &a, // 运算式的 α 值 
    d_A, // A 在显存中的地址 
    N, // lda 
    d_B, // B 在显存中的地址 
    M, // ldb 
    &b, // 运算式的 β 值 
    d_C, // C 在显存中的地址(结果矩阵) 
    M // 
    );
// 同步函数 
cudaThreadSynchronize();
// 从 显存 中取出运算结果至 内存中去
cublasGetVector(M*M, // 要取出元素的个数 
    sizeof(float), // 每个元素大小 
    d_C, // GPU 端起始地址 
    1, // 连续元素之间的存储间隔 
    h_C, // 主机端起始地址
    1 // 连续元素之间的存储间隔 
    );
// 打印运算结果 
cout << "计算结果的转置 ( (A*B)的转置 ):" << endl;
for (int i = 0; i<M*M; i++){
    cout << h_C[i] << " ";
    if ((i + 1) % M == 0) cout << endl;
}
// 清理掉使用过的内存 
free(h_A);
free(h_B);
free(h_C);
cudaFree(d_A);
cudaFree(d_B);
cudaFree(d_C);
// 释放 CUBLAS 库对象
cublasDestroy(handle);
getchar();
return 0;
}

运行结果如下图所示:(亲测)

7、Tensorflow-GPU 安装

【注意】首先要清楚有两种安装方法:第一种:通过命令行安装;第二种:通过anaconda中的anaconda Navigatror install安装。

(1)命令行安装:

1-打开你的anaconda prompt

输入以下命令,也可以复制粘贴进去。遇见y/n选择y。

conda create -n tensorflow pip python=3.5 

接着输入以下命令,也可以复制粘贴进去。遇见y/n选择y。

activate tensorflow

接着输入以下命令,也可以复制粘贴进去。遇见y/n选择y。

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

如果速度太慢就换成国内的源吧:

pip install --ignore-installed --upgrade tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple

运行完是这样的:【这里截别人的图,见谅】

后续pip install  ***各种你需要的库文件、函数就可以

(2)anaconda Navigatror install安装:

        如下图create一个环境“tensorflow”,然后install tensorflow-GPU1.8.0,如果没有选中tensorflow-GPU右击鼠标可以进行版本的更换,本人这里选择1.8.0版本,然后applay就好了。。。(对应的Keras选用2.2.0版本的)

           为了能在ipython 和Spyder中使用tensorflow,我们需要在tensorflow的环境中安装这两个的插件。 
   打开Anaconda Navigator,选择Not installed,找到 ipython和Spyder并安装,笔者这里已经安装好,所以在这个页面没有显示。 

这里写图片描述

切换到installed,可以看到两个都已经安装好,其实可以按照自己的需要安装。下图显示已经安装好的Spyder: 

这里写图片描述

安装好插件后,我们需要测试一下。 
  在Anaconda Prompt中启动tensorflow环境,并运行ipython,import tensorflow发现成功: 同样,在Anaconda Prompt中启动tensorflow环境,并运行Spyder,等一会儿后会启动Spyder IDE,import tensorflow 同样成功: 

这里写图片描述

8、接下来的工作很重要Mask_rcnn配置及其准备工作

(1)下载代码

项目源代码地址:https://github.com/matterport/Mask_RCNN

(2)下载模型

在COCO数据集上预训练权重(mask_rcnn_coco.h5),下载地址:https://github.com/matterport/Mask_RCNN/releases

下载完成后将数据集放在Mask_RCNN文件夹中,

(3)安装pycocotools【已经装过vs2015就无需安装vc++2015】

         在COCO数据集上训练或者是测试,需要安装pycocotools(这里是重点!!!),

        clone下COCO放在anaconda文件夹,地址:https://github.com/philferriere/cocoapi

       或者在终端的anaconda文件夹下输入:

pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

    【  接下来安装pycocotools是重点】

 

MaskRCNN时出现了No module named pycocotools.coco的情况

主要是需要安装需要安装pycocotools,后来才发现原来大佬开源了windows的API,进入GitHub按提示搞就好了。

Windows: https://github.com/philferriere/cocoapi. You must have the Visual C++ 2015 build tools on your path (see the repo for additional details)
 

或者是直接克隆下来,按照下面的步骤(跳过第一步!对于第二步:window的话直接cd到 克隆的文件目录/PythonAPI,接下来跟着步骤走就好了)

第一步:

git clone https://github.com/pdollar/coco.git

第二步:

cd coco/PythonAPI
python setup.py build_ext --inplace

第三步:

python setup.py build_ext install

经过上面三个步骤,已经安装好了pycocotools到python库了,进入python命令行就可以直接导入了,执行下面命令不报错说明已经安装成功了

【后续】
到此基本整个环境搭建结束,辛苦敲的字希望对大家有用!!!!后续更新mask_rcnn更多相关内容!!!!!

 

  • 15
    点赞
  • 5
    评论
  • 29
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值