最近本人在跑Flownet2代码,从安装到运行遇到了蛮多问题,记录一下安装过程。
一、工具篇
1. Flownet2-pytorch [1]
2. VS2015 with update3 [2]
3. CUDA 10.0 (本人下载的是 cuda_10.0.130_411.31_win10 )
4. 对应于 cuda10.0 版本的 cudNN (本人下载的是cuDNN v7.6.5)
5. 配置Flownet2的虚拟环境,包括:CUDA 10.0 版本的 torch1.0.1, torchvision 0.2.1等
二、安装VS2015 with update3 [3]
1. 下载网盘链接[2]中的文件,打开后的文件如下:
2. 打开里面的packages文件,在该文件夹里找到EspC文件,把它拷贝一份到其他地方(不在这个镜像文件夹就行)
3. 打开EspC文件,点击安装最后一个程序:
4. 安装完毕后返回镜像文件,点击安装VS应用程序:
5. 初始化安装程序
6. 接下来选择安装位置以及安装方式
7. 选择要安装的组件
8. 点击下一步,点击安装
9. 安装完成,选择环境配置(选择常规)
10. 进入
三、安装CUDA 10.0 (本人下载的是 cuda_10.0.130_411.31_win10 )[4]
1. 下载CUDA 10.0,可以参考 [4] 的下载步骤,在官网找到cuda_10.0.130_411.31_win10这个版本[5]。
2. 双击cuda_10.0.130_411.31_win10.exe之后会提示解压到一个目录,这里不要直接点确定,会解压到C盘占用系统盘的资源,可以随意选一个目录解压,安装完成后删除!
3. 然后会自动跳出来安装界面,系统检查界面:
4. 许可协议,选同意并继续:
5. 安装选项选自定义,进入下一步:
6. 选择驱动程序组件,全选,进入下一步:
7. 选择安装位置,这里我就选择了默认位置,因为之后设置环境变量,就可以直接参考 [4] 了,不然又找不到路径
8. 安装过程
9. 安装结束
10. 打开命令窗口Win+R,输入以下命令:
11. 按回车键之后,再输入以下命令:
12. 显示红框中的内容,就说明安装成功了
四、安装对应于 cuda10.0 版本的 cudNN [4]
1. 安装完成之后,还需要下载cudNN,这里需要在官网[5]登录并填写问卷才能下载,到下图所示的下载页面去下载
2. 将下载并解压后的所有文件放到CUDA10安装目录相应文件夹下即可
3. 设置环境变量,计算机上点右键,打开属性->高级系统设置->环境变量,可以看到系统中多了CUDA_PATH和CUDA_PATH_V10_0两个环境变量
4. 接下来,还要在系统中新建以添加以下几个环境变量,如图红框所示:
(1)CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0
(2)CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
(3)CUDA_BIN_PATH = %CUDA_PATH%\bin
(4)CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
(5)CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
5. 在系统变量 PATH 的末尾添加:
(1)%CUDA_LIB_PATH%
(2)%CUDA_BIN_PATH%
(3)%CUDA_SDK_LIB_PATH%
(4)%CUDA_SDK_BIN_PATH%
(5)C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64
(6)C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
(7)C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\common\lib\x64
(8)C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\bin\win64
6. 配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwithTest.exe:首先win+R启动cmd,cd到安装目录下的 ...\extras\demo_suite,然后分别执行bandwidthTest.exe和deviceQuery.exe
五、 配置Flownet2的虚拟环境
1. 进入Pychram,打开Flownet2项目
2. 创建并激活Flownet2虚拟环境
3. 输入以下命令,安装这些包:
(1) pip install torch==1.0.1 -f https://download.pytorch.org/whl/torch_stable.html
(2)pip install torchvision==0.2.1 -f https://download.pytorch.org/whl/torch_stable.html
(3)pip install scipy -i https://pypi.tuna.tsinghua.edu.cn/simple
(4)pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
(5)pip install scikit-image -i https://pypi.tuna.tsinghua.edu.cn/simple
(6)pip install tensorboardX -i https://pypi.tuna.tsinghua.edu.cn/simple
(7)pip install colorama -i https://pypi.tuna.tsinghua.edu.cn/simple
(8)pip install tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple
(9)pip install setproctitle -i https://pypi.tuna.tsinghua.edu.cn/simple
(10)pip install pytz -i https://pypi.tuna.tsinghua.edu.cn/simple
以下是我的安装包
4. 输入以下命令,分别进入到networks文件夹中的这三个文件夹
5. 再输入该命令:python setup.py install
(1)会出现以下报错:
这时参考[6]的修改说明,打开:torch/torch.h,然后把warning那段话删掉,这是因为Flownet2里面使用了旧版的torch.h头文件,但他在更新之后没有改成extension.h,这里问题不大,warning删掉就行
(2)再输入该命令:python setup.py install,会遇到类似如下的问题:error: more than one operator "==" matches these operands,这时,找到THCNumerics.cuh文件,一般来说在这个目录:'...\Lib\site-packages\torch\lib\include\THC\THCNumerics.cuh',将以下的代码屏蔽即可。
(3)再输入该命令:python setup.py install,出现以下内容,说明该文件编译成功了
6. 继续进入其他两个文件夹correlation_package和resample2d_package下,再输入该命令:python setup.py install,出现了以上(3)中相同的内容,说明该文件编译成功了。
7. 进入Flownet2文件,将main.py中的这两行代码屏蔽
同时将该文件从Flownet2文件夹中删除
8. 输入下面的命令后
python main.py --batch_size 1 --model FlowNet2 --optimizer=Adam --optimizer_lr=1e-4 --loss=MultiScale --loss_norm=L1 --loss_numScales=5 --loss_startScale=4 --optimizer_lr=1e-4 --crop_size 384 512 --training_dataset FlyingChairs --training_dataset_root D:/project/FlyingChairs/FlyingChairs_release/data/ --validation_dataset FlyingChairs --validation_dataset_root D:/project/FlyingChairs/FlyingChairs_release/data/
其中D:/project/FlyingChairs/FlyingChairs_release/data/和D:/project/FlyingChairs/FlyingChairs_release/data/为自己数据下的路径。
9. 计算机运行如下,说明代码运行成功了~
本人的电脑配置也是太low了,只能将batch_size设为1,才能跑起来,后期打算用服务器跑一波~~~
参考
[1] GitHub - NVIDIA/flownet2-pytorch: Pytorch implementation of FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks
[2] 链接:https://pan.baidu.com/s/1CCHzV0lszjhRrevFnC2h0Q,提取码:rblw
[3] Visual Studio Professional 2015 (with Update 3) 安装教程_mycurry的博客-CSDN博客_vs2015update3安装教程
[4] 超详细的win10安装对应版本的CUDA和CUDNN !亲测有效! - 程序员大本营
[5] NVIDIA cuDNN | NVIDIA Developer
[6] Flownet2 NVIDIA pytorch最新安装教程 有效的避坑教程_晋图的非正常人类胡言乱语集合-CSDN博客