FlowNet2环境配置踩坑实录

FlowNet2是光流估计领域的经典工作,从事相关研究应用都难免引用这个工作。讲道理他的易用性在当年做的还是不错的,环境配置的主要问题是过于古早的Pytorch和Cuda版本和谜一样的c系语言报错。

项目地址:
https://github.com/NVIDIA/flownet2-pytorch

一. 编译过程

从github上拉下代码后,进入了第一道关卡:编译。因为flownet2依赖于cuda加速,所以需要编译后才能使用。按照官网的Installation步骤,会遇到以下问题:

1. 找不到NVCC,即使nvcc -V指令没问题

报错信息:

/usr/local/cuda/bin/nvcc: No such file or directory

解决方法:
~/.bashrc文件中不能写成

CUDA_HOME=CUDA_HOME:/usr/local/cuda

应该写成

CUDA_HOME=/usr/local/cuda

具体原因不明,这个方法确实work,但不是一些博主说的CUDA_HOME后有冒号的问题

2. gcc版本不得新于gcc7
3. pytroch和cuda版本必须匹配、

用issue里好哥哥的信息,pytorch不一定要用Readme里的0.4.1
在这里插入图片描述
为了配置各种工程的环境,我已经被迫熟练掌握CUDA,GCC,pytorch的版本切换了,哈,哈哈哈…

二. 运行过程

1. 预训练权重和测试数据的下载

首先需要一个好用的梯子,不然权重在google的网盘上是下不下来的。
权重

完成下载后,权重不需要解压,在项目根目录建一个checkpoint文件夹放进去即可

数据集
地址:

http://sintel.is.tue.mpg.de/downloads
下载其中的test即可
在这里插入图片描述
完成下载后,在根目录新建dataset文件夹,放入下载内容,解压

最后的目录应该长这样

在这里插入图片描述

2. 执行命令

Readme中提供的指令需要做一些替换,最后可以执行的命令为:

python main.py --inference \
--model FlowNet2 \ # 根据实际下载的模型修改
--save_flow --inference_dataset ImagesFromFolder \ # 注意和原命令有区别
--inference_dataset_root ./dataset/test/clean/wall \ # 数据集路径
--resume ./checkpoint/FlowNet2_checkpoint.pth.tar \ # 预训练权重路径
--save ./output

这其中遇到了两个问题:

a 数组越界

如果--inference_dataset选项没有修改,会报错数组越界。因为这里使用的数据集不是十分标准的MPISinter数据集。

b CUDA, Pytorch, CUDNN版本不一致
error in Correlation_forward_cuda_kernel: invalid device functionncing

修改conda环境中的pytorch版本时,最好把整个环境都删了重建一个新环境。我这里报错就是因为cuda90没有删除影响了cuda100的使用。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值