Win11下配置安装slowfast,并测试运行成功(疯狂踩坑版)

前言

slowfast配环境加测试运行花了三天才完成
总会有奇奇怪怪的报错
下面的安装指令都是让我成功装上的
报错都是运行过程中碰到的
不知道改报错的思路对不对,但是暂时可以顺利运行了
祝大家slowfast顺利!
如果大家发现什么问题,欢迎提出!

电脑基本环境

win 11
python 3.8
pytorch 2.0.0
torchvision 0.15.0
CUDA11.8

创建激活虚拟环境

conda create -n slowfast python=3.8
conda activate slowfast

安装基础的torch和cuda

在考虑版本之后,安装11.8版本的cuda、2.0.0版本的torch、0.15.0版本的torchvision
在此为了避免多个版本的cuda冲突,将cuda安装在环境里面
之前安装pytorch也踩了很多坑,觉得最稳定的是将whl下载到本地,再安装

  1. 寻找对应版本:torch和torchvision版本对应
  2. whl文件下载:下载地址
    根据自己的需要去选择文件,其中cu118指cuda版本,cp38指python版本,win和linux对应操作系统,箭头所指是我所下载的文件
    torch对应的whl文件下载
    同理torchvision也是这样
    torchvision对应的whl文件下载
  3. 使用pip命令进行安装
    将命令行换到whl文件所在的目录下,一定记得换目录!!!不然就检索不到whl文件,按顺序依次运行下面两个命令
    pip install torchvision-0.15.0+cu118-cp38-cp38-win_amd64.whl
    pip install torch-2.0.0+cu118-cp38-cp38-win_amd64.whl
  4. 验证torch是否安装成功
import torch # 如果pytorch安装成功即可导入
print(torch.cuda.is_available()) # 查看CUDA是否可用,True即为可用
print(torch.cuda.device_count()) # 查看可用的CUDA数量
print(torch.version.cuda) # 查看CUDA的版本号

安装GCC

需要它的编译环境
这里就直接放参考链接吧
参考链接1
参考链接2

安装VisualStudio2019

我看的教程说必须是这个版本,具体什么原因我也不太清楚
VS2019的官方下载链接好像没办法下载,因此用的是这个博主分享的安装包VS2019安装包
这个安装教程也直接放链接吧
参考链接

slowfast依赖包安装

根据官方给出的列表去安装包

安装包列表

slowfast代码下载

  1. 直接下载zip,也可以使用git clone
  2. 在命令行中,将路径换成slowfast-main
    cd D:\file\code\SlowFast-main

安装fvcore

# 官方给出的命令
pip install "git+https://github.com/facebookresearch/fvcore"
# 每次运行都会报错,因此先将zip下载,然后运行
pip install "D:\file\postgrad\experiment\code\fvcore-main" # zip文件所在目录

安装fairscale

git clone https://github.com/facebookresearch/fairscale.git
cd fairscale
pip install -r requirements.txt
# -e signified dev mode since e stands for editable
pip install -e .
# 安装完记得退回上一级文件夹
cd..

安装simplejson

pip install simplejson -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装PyAV和ffmpeg

conda install av -c conda-forge

安装psutil

pip install psutil

安装opencv-python

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

安装tensorboard

pip install tensorboard

安装moviepy

conda install -c conda-forge moviepy

安装PyTorchVideo

git clone https://github.com/facebookresearch/pytorchvideo.git
cd pytorchvideo
pip install -e .
# 安装完记得退回上一级文件夹
cd..

安装cocoapi

git clone https://github.com/philferriere/cocoapi
cd coco/PythonAPI
python setup.py build_ext –inplace
# 验证是否安装成功
import cocoapi
# 安装完记得退回上一级文件夹
cd..

安装ninja

pip install ninja

安装Detectron2

当以上都安装好之后再进行这一步,不然编译会报错

git clone https://github.com/facebookresearch/detectron2.git
python -m pip install -e detectron2

更改slowfast中setup.py的部分代码

更改图中圈出来的两个
更改后

对slowfast进行编译

python setup.py build develop

编译期间会提示包报错,只需要pip install报错的包就可以,我编译的时候又安装了scikit-learn和pandas

配置环境成功!

当出现这样的字样就成功啦!

Finished processing dependencies for slowfast==1.0

成功的样子

注意事项

有一些包是git clone配置的,因此包在slowfast代码所在的文件夹下
就是cocoapi、detectron2、fairscale、pytorchvideo,建议复制到下图所示文件夹,为了避免导包导不进去依赖包路径
detectron2有一点特殊,只将下图中圈的两个复制过去
在这里插入图片描述

测试slowfast

下载权重

下载图中选中的权重,得到一个SLOWFAST_32x2_R101_50_50.pkl

权重下载
将该文件放到了如下图
权重所在位置

用一个标签文件进行测试

在如图所示路径下
标签文件所在位置

新建一个名为ava.json的文件,内容如下

{"bend/bow (at the waist)": 0, "crawl": 1, "crouch/kneel": 2, "dance": 3, "fall down": 4, "get up": 5, "jump/leap": 6, "lie/sleep": 7, "martial art": 8, "run/jog": 9, "sit": 10, "stand": 11, "swim": 12, "walk": 13, "answer phone": 14, "brush teeth": 15, "carry/hold (an object)": 16, "catch (an object)": 17, "chop": 18, "climb (e.g., a mountain)": 19, "clink glass": 20, "close (e.g., a door, a box)": 21, "cook": 22, "cut": 23, "dig": 24, "dress/put on clothing": 25, "drink": 26, "drive (e.g., a car, a truck)": 27, "eat": 28, "enter": 29, "exit": 30, "extract": 31, "fishing": 32, "hit (an object)": 33, "kick (an object)": 34, "lift/pick up": 35, "listen (e.g., to music)": 36, "open (e.g., a window, a car door)": 37, "paint": 38, "play board game": 39, "play musical instrument": 40, "play with pets": 41, "point to (an object)": 42, "press": 43, "pull (an object)": 44, "push (an object)": 45, "put down": 46, "read": 47, "ride (e.g., a bike, a car, a horse)": 48, "row boat": 49, "sail boat": 50, "shoot": 51, "shovel": 52, "smoke": 53, "stir": 54, "take a photo": 55, "text on/look at a cellphone": 56, "throw": 57, "touch (an object)": 58, "turn (e.g., a screwdriver)": 59, "watch (e.g., TV)": 60, "work on a computer": 61, "write": 62, "fight/hit (a person)": 63, "give/serve (an object) to (a person)": 64, "grab (a person)": 65, "hand clap": 66, "hand shake": 67, "hand wave": 68, "hug (a person)": 69, "kick (a person)": 70, "kiss (a person)": 71, "lift (a person)": 72, "listen to (a person)": 73, "play with kids": 74, "push (another person)": 75, "sing to (e.g., self, a person, a group)": 76, "take (an object) from (a person)": 77, "talk to (e.g., self, a person, a group)": 78, "watch (a person)": 79}

更改配置文件参数

配置文件所在位置如图
配置文件
第一处更改,也就是权重的路径
权重文件路径更改
第一个框中的代码要注释
第二个框分别对应:标签路径、视频输入路径和视频输出路径
第二个框最后一行要注释
标签和视频路径更改
这里选用的视频是从互联网随机下载进行测试的

要编译啦!

python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml

编译过程中遇到的报错

ModuleNotFoundError: No module named ‘torch._six’
File "d:\file\postgrad\experiment\code\slowfast-main\slowfast\datasets\multigrid_helper.py", line 16, in <module>
    from torch._six import int_classes as _int_classes
ModuleNotFoundError: No module named 'torch._six'
# 点进提示报错的文件夹进行如下修改
else:
    # from torch._six import int_classes as _int_classes
    int_classes = int
    string_classes = str
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position 1808: illegal multibyte sequence

这个更改结合chatgpt

# 在‪D:\slowfast所在文件夹下\SlowFast-main\slowfast\utils\parser.py做了如下更改
import yaml
from fvcore.common.config import CfgNode

cfg = get_cfg()
    # Load config from cfg.
    '''
    这里注释的地方是源代码
    '''
    # if path_to_config is not None:
    #     cfg.merge_from_file(path_to_config)
    '''
    这是修改后
    '''
    if path_to_config is not None:
        with open(path_to_config, 'r', encoding='utf-8') as f:
            config_data = yaml.load(f, Loader=yaml.FullLoader)
        cfg.merge_from_other_cfg(CfgNode(config_data))
RuntimeError: COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml not available in Model Zoo!
  • 查看site-packages\detectron2\model_zoo\configs\COCO-Detection\faster_rcnn_R_50_FPN_3x.yaml是否存在
  • 如果没有,将 detectron2-master/configs文件下的所有文件全都复制到site-packages\detectron2\model_zoo\configs下
  • 再次测试

编译成功(结束啦!!)

出现这样的进度条就成功了
进度条
运行完成后会在指定的文件夹中生成一段视频
放一张测试成功的图片,精确度一般,但是可以证明成功了
测试图片

参考链接

参考链接1
参考链接2
参考链接3

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值