前言:

 nvidia在github上发布的flownet2-pytorch并不能按照它说明的那样直接安装,里面存在很多bug, 根据上网查询与自己实践,我把安装步骤一步一步列出来,供大家参考。 


1) 创建环境

conda create -n flownet2 python=3.6.9

2)进入虚拟环境

conda activae flownet2

3)安装gcc7,g++7

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7
sudo apt-get install g++-7

4)将gcc7,g++7作为默认选项

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
sudo update-alternatives --config gccsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100
sudo update-alternatives --config g++sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50

5) 查看所有gcc版本

ls /usr/bin/gcc*

6) 查看当前gcc版本

gcc -v

7)安装pytorch

下面介绍的可行版本1可行版本2是我自己测试过的,可行版本3是评论区反馈后测试过的。

可行版本1(ubuntu 16.04, cuda 10.2, NVIDIA Driver: 440.36,gcc 5.4.0):

conda install pytorch==1.5.1 torchvision==0.6.1 cudatoolkit=10.1 -c pytorch

可行版本2(ubuntu 16.04, cuda 10.2,NVIDIA Driver: 440.36,gcc 5.4.0):

conda uninstall python
conda install python==3.7
conda install pytorch==1.9.0 torchvision==0.6.1 cudatoolkit=10.2 -c pytorch

可行版本3(ubuntu 18.04, cuda 10.1,GCC 7.4):

conda uninstall python
conda install python==3.6
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch

8) 安装依赖包

pip install numpy
pip install tensorboardX
pip install setproctitle
pip install colorama
pip install tqdm
pip install scipy
pip install matplotlib
pip install pytz
pip install opencv-python

9) 下载flownet代码

git clone https://github.com/NVIDIA/flownet2-pytorch.git
cd flownet2-pytorch

10)对以下文件进行修改,

在以下三个文件中

  • networks/channelnorm_package/setup.py
  • networks/resample2d_package/setup.py
  • networks/correlation_package/setup.py

cxx_args = ['-std=c++11']

修改为

cxx_args = ['-std=c++14']

11)在 flownet2-pytorch/utils/frame_utils.py  中

from scipy.misc import imread

修改为

from imageio import imread

12)在 flownet2-pytorch/datasets.py 中

from scipy.misc import imread, imresize

修改为

from imageio import imread

13) 在flownet2-pytorch/networks/channelnorm_package/channelnorm.py中

在第9行添加

input1 = input1.contiguous()

修改后代码如下:

 class ChannelNormFunction(Function):@staticmethoddef forward(ctx, input1, norm_deg=2):input1 = input1.contiguous() # 新添加的代码assert input1.is_contiguous()

14) 进入install.sh所在文件夹后输入如下命令

./install.sh

15) 输入以下命令进行测试

python main.py -h

测试的过程中会出现各种module的缺失问题,缺什么就输入如下命令:

pip install modules_needed

根据个人经验,在8)中我已经把所有需要安装的module都记录下来了

测试成功应该输出以下结果:

usage: main.py [-h] [--start_epoch START_EPOCH] [--total_epochs TOTAL_EPOCHS][--batch_size BATCH_SIZE] [--train_n_batches TRAIN_N_BATCHES][--crop_size CROP_SIZE [CROP_SIZE ...]]......
Model:--model {ChannelNorm,FlowNet2,FlowNet2C,FlowNet2CS,FlowNet2CSS,FlowNet2S,FlowNet2SD,Resample2d,tofp16,tofp32}

16) 跑inference测试

(1)下载数据集

为了测试代码是否能跑通,我只下载了 MPI-Sintel 数据集,并新建一个datasets文件夹,把数据集放在这个文件夹下

(2)下载checkpoint

github上提供的checkpoint下载路径难以下载,我把checkpoint下载后转存到了百度云,大家可以从百度云下载。

链接:https://pan.baidu.com/s/19g9ufG5zPARxMFireouXXQ 
        提取码:w97r

值得注意的是: 下载得到的checkpoint文件是一个整体,不能用rar或tar解压。这个文件直接被使用。

(3)数据集及checkpoint路径设置

        我的数据集存放路径是:flownet2-pytorch/datasets/MPI-Sintel

checkpoint的存放路径是:flownet2-pytorch/pre_train/

 (4)inference测试,我的测试代码是

python main.py --inference \--model FlowNet2 \--save_flow \--inference_dataset MpiSintelClean \--inference_dataset_root ./datasets/MPI-Sintel/training \--inference_visualize \--resume ./pre_train/FlowNet2_checkpoint.pth.tar

备注:

  • inference时,只能选择 /MPI-Sintel/training 文件夹
  • 需要修改的仅仅是 --inference_dataset_root ./datasets/MPI-Sintel/training \
  • 和   --resume ./pre_train/FlowNet2_checkpoint.pth.tar 的路径

17) flownet2封装

见 https://github.com/wzg16/FlowNet2-PyTorch-EasyToUse-Wrapper


# 其他问题

问题1: ModuleNotFoundError: No module named 'resample2d_cuda'

原因分析: 在执行上面的第14)步之后,更新了pytorch版本或者torchvision版本,导致针对原来版本编译的文件与当前版本的torch不适用。

  解决方法1

step1) 分别进入

/flownet2_pytorch/networks/resample2d_package/

/flownet2_pytorch/networks/correlation_package/

flownet2_pytorch/networks/channelnorm_package

等三个文件夹

step2) 执行以下命令:

python3 setup.py build
python3 setup.py install

解决方法2: 重新运行

./install.sh

通过看install.sh的代码,方法2与方法1应该是等价的。

其他参考博客:

Cuda 11.1 + 30系显卡 + Pytorch 1.8.0 + Ubuntu 18.04 安装FlowNet2.0_xxxbit的博客-CSDN博客

服务器Ubuntu20.04下安装Flownet2.0运行环境(亲测有效)_focus_xiang的博客-CSDN博客

手把手安装flownet2-pytorch相关推荐

  1. win10开始不显示python_win10从零安装配置pytorch全过程图文详解

    1.安装anaconda (anaconda内置python在内的许多package,所以不用另外下载python) 可以点击下面的清华开源软件镜像站,在官网下载anaconda不如在这下的快 htt ...

  2. 今晚直播丨手把手安装搭建GoldenDB

    手把手安装搭建GoldenDB-03.09 作为成熟稳定商用领先的金融级分布式数据库,中兴通讯GoldenDB分布式数据库具备强一致.高性能.高可靠.易扩展及智能运维等核心能力. 本次课程以Golde ...

  3. 两场直播丨 手把手安装搭建GoldenDB、基于IB网络的Oracle Extend RAC最佳实践

    1. 手把手安装搭建GoldenDB-03.09 作为成熟稳定商用领先的金融级分布式数据库,中兴通讯GoldenDB分布式数据库具备强一致.高性能.高可靠.易扩展及智能运维等核心能力. 本次课程以Go ...

  4. 3050显卡驱动安装+配置pytorch的cuda环境

    3050显卡驱动安装+配置pytorch的cuda环境 前言 一.下载3050驱动 二.下载CUDA 二.cuDNN下载 三.cuDNN配置 四.pytorch环境配置 ①.创建虚拟环境 前言 因为有 ...

  5. ModuleNotFoundError: No module named 'torch'(anaconda安装好Pytorch却无法在Jupyter notebook使用)

    Windows下使用anaconda安装配置CPU版的pytorch请参看这篇博客: https://blog.csdn.net/weixin_43876801/article/details/103 ...

  6. LabVIEW数据采集:视频教程附录1手把手安装LabVIEW

    <LabVIEW数据采集>视频教程附录1:手把手安装LabVIEW LabVIEW2019 中文版-32位(无驱动.模块版本)2.29GB 链接: https://pan.baidu.co ...

  7. 无ROOT不安卓Windows11安卓子系统WSA解锁Root并包含谷歌应用商店GMS保姆级手把手安装教程含程序资源

    优爱酷特意为大家整理制作修改好的了具备ROOT和GMS的镜像文件,我们只需要下载镜像文件重新部 ​​ 01 引言 Win11安卓子系统ROOT包含GMS版手把手安装视频教程. 之前介绍过<微软 ...

  8. 安装MMDET全过程 历时五天从anaconda安装到pytorch安装到CUDA配置到MIM安装到MMCV安装最后到MMDET安装

    深度学习安装笔记(三)--安装MMDET全过程-- 历时五天从anaconda安装到pytorch安装到CUDA配置到MIM安装到MMCV安装最后到MMDET安装 写在前面 安装流程 一.Anacon ...

  9. 3090显卡安装tensorflow/pytorch

    3090显卡安装tensorflow/pytorch 一 3090显卡驱动 二 安装CUDA11.0 三 安装cuDNN 四 anaconda使用 1 安装anaconda 2 conda使用 五 安 ...

最新文章

  1. bzoj3192: [JLOI2013]删除物品
  2. php 操作权限,liunx下PHP操作权限文件
  3. 常见的几个大数据名词:OLAP、OLTP、BI到底代表着什么?
  4. JAVA期末考试工程部分_知到Java程序设计(山西工程职业学院)考试期末答案
  5. C语言,利用一维数组中选择法对成绩高低排序和输出对应的学号及利用顺序查找查找学生成绩
  6. Python基础100题
  7. linux 下Eclipse for C/C++的不常见设置
  8. 程序员为教师妻子开发专属应用;2020 最佳开源项目出炉;中国构建全星地量子通信网|开发者周刊
  9. 中老铁路国内段首座四线特大桥顺利合龙
  10. GitHub pages + Hexo 搭建自己的个人博客
  11. 不同网段windows远程linux桌面,实现不同网段pc机及交换机互通
  12. 数值计算详细笔记(一):基础数学知识回顾
  13. 读书APP的不二备胎,我选了网易蜗牛读书
  14. 谈谈自己对做软件开发这一行业的想法
  15. 房屋安全鉴定现场检测主要检测哪些内容
  16. 7-6 输入数据范围的简单判断7-7 计算半圆面积和弧长
  17. 软件工程第一章绪论————(2019.12.27学习笔记)
  18. 用$refs去无法调用子组件的函数
  19. 用echart玩点好玩的--酷炫热力图
  20. 数据圈最全的数据产品文章全集

热门文章

  1. 文件与目录的默认权限与隐藏权限
  2. php去掉 部分字符,输出,php如何去除某个字符
  3. cmd 生成wsdl文件_Spring Boot SOAP系列之WSDL是什么“Lese”
  4. java ftp连接成功 上传失败_ftp自动上传工具,如何设置及配置ftp自动上传工具
  5. python爬取网页文本_手把手教你如何用Python爬取网站文本信息
  6. linux修改管理员密码后保存,各类unix和linux管理员密码丢失解决方法
  7. 如何在jQuery中使用is()函数
  8. aws lambda_在AWS Lambda上运行“ Hello World”
  9. java创建一个不可变对象_如何在Java中创建不可变类?
  10. android jni示例_Android CollapsingToolbarLayout示例