Shortcuts

常见问题解答

概述

我们在这里列出了许多用户常遇到的问题以及相应的解决方案。

如果您发现任何频繁出现的问题并且有解决方法,欢迎在列表中补充。如果这里的内容没有涵盖您的问题,请使用提供的模板创建一个问题,并确保在模板中填写所有必要的信息。

安装

  • “No module named ‘mmcv.ops’”; “No module named ‘mmcv._ext’”

    1. 使用 pip uninstall mmcv 命令卸载环境中的现有 mmcv。

    2. 参照安装说明安装 mmcv。

  • “OSError: MoviePy Error: creation of None failed because of the following error”

    使用 pip install moviepy 安装。更多信息可以参考官方安装文档, 请注意(根据这个 issue):

    1. 对于 Windows 用户,ImageMagick 不会自动被 MoviePy 检测到,需要修改 moviepy/config_defaults.py 文件,提供 ImageMagick 二进制文件 magick 的路径,例如 IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\magick.exe"

    2. 对于 Linux 用户,如果 MoviePy 没有检测到 ImageMagick,需要修改 /etc/ImageMagick-6/policy.xml 文件,将 <policy domain="path" rights="none" pattern="@*" /> 注释掉,改为 <!-- <policy domain="path" rights="none" pattern="@*" /> -->

  • “即使我已经安装了 XXCODEBASE,为什么还会收到 ‘Please install XXCODEBASE to use XXX’ 的错误消息?”

    您收到该错误消息是因为我们的项目无法从 XXCODEBASE 中导入一个函数或类。您可以尝试运行相应的代码行来查看发生了什么。一个可能的原因是,在 OpenMMLAB 的某些代码库中,您需要在安装它们之前先安装 mmcv 和 mmengine。您可以按照教程来安装它们。

数据

  • FileNotFound 错误,例如 No such file or directory: xxx/xxx/img_00300.jpg

    在我们的仓库中,我们将 start_index=1 设置为 rawframe 数据集的默认值,将 start_index=0 设置为视频数据集的默认值。如果用户遇到数据的第一帧或最后一帧的 FileNotFound 错误,需要检查以 0 或 1 作为偏移量开始的文件,例如 xxx_00000.jpgxxx_00001.jpg,然后在配置文件中更改数据处理流水线的 start_index 值。

  • 我们应该如何预处理数据集中的视频?将它们调整为固定大小(所有视频的高宽比相同),例如 340x256(1),还是调整它们使得所有视频的短边具有相同的长度(256px 或 320px)(2)?

    我们尝试过这两种预处理方法,并发现(2)通常是更好的解决方案,因此我们使用(2)作为默认的预处理设置,短边长度为 256px。我们对这些预处理方法进行了基准测试,您可以在TSN 数据基准测试SlowOnly 数据基准测试中找到结果。

  • 数据处理流水线中的项不匹配导致出现类似 KeyError: 'total_frames' 的错误

    我们有用于处理视频和帧的两个处理流水线。

    对于视频,我们应该在处理流水线中动态解码视频,所以在这种情况下应该使用 DecordInit & DecordDecodeOpenCVInit & OpenCVDecodePyAVInit & PyAVDecode 这样的配对,例如这个示例

    对于帧,图像已经在离线状态下解码,所以在这种情况下应该使用 RawFrameDecode 这样的处理流水线项,例如这个示例

    KeyError: 'total_frames' 是由于错误地将 RawFrameDecode 步骤用于视频,因为当输入是视频时,无法预先获取 total_frames

训练

  • 如何只使用训练好的识别模型进行主干网络的预训练?

    为了使用预训练模型进行整个网络的训练,新的配置文件在 load_from 中添加了预训练模型的链接。

    要使用主干进行预训练,可以将配置文件中主干部分的 pretrained 值更改为权重路径/URL。在训练时,未预料到的键将被忽略。

  • 在微调模型时如何固定主干的某些阶段?

    您可以参考 def _freeze_stages()frozen_stages。 提醒在配置文件中设置 find_unused_parameters = True,以进行分布式训练或测试。

    实际上,除了少数模型,如 C3D 等,用户可以设置 frozen_stages 来冻结主干的阶段,因为几乎所有继承自 ResNetResNet3D 的主干都支持内部函数 _freeze_stages()

  • 如何在配置文件中设置 memcached ?

    在 MMAction2 中,您可以将 memcached 的参数传递给用于视频数据集的 class DecordInit 或用于原始帧数据集的 RawFrameDecode。有关更多细节,请参阅 MMEngine 中的 class FileClient。以下是一个示例,演示如何在原始帧数据集中使用 memcached:

    mc_cfg = dict(server_list_cfg='server_list_cfg', client_cfg='client_cfg', sys_path='sys_path')
    
    train_pipeline = [
      ...
      dict(type='RawFrameDecode', io_backend='memcached', **mc_cfg),
      ...
    ]
    
  • 如何在配置文件中设置 load_from 的值以微调模型?

    在 MMAction2 中,我们将 load_from=None 设置为 configs/_base_/default_runtime.py 中的默认值,并且由于继承设计,用户可以直接通过在其配置文件中设置 load_from 来更改它。

  • 如何在训练时使用 RawFrameDataset

    在 MMAction2 1.x 版本中,大多数配置文件默认使用 VideoDataset 作为数据集类型,这对于文件存储更加友好。如果您想使用 RawFrameDataset,需要进行两个修改步骤:

    • dataset 相关: 将 train_dataloader/val_dataloader/test_dataloader 中的 dataset

      dataset=dict(
          type=VideoDataset,
          data_prefix=dict(video=xxx),
          ...)
      

      修改为

      dataset=dict(
          type=RawFrameDataset,
          data_prefix=dict(img=xxx),
          filename_tmpl='{:05}.jpg',
          ...)
      

      数据集的其他字段不需要修改。请确保 filename_tmpl 与帧数据匹配,并参考配置文件文档了解更多关于配置文件的详细信息。

    • transform 相关:在 train_pipeline/val_pipeline/test_pipeline 中删除 dict(type='DecordInit', **file_client_args),将 dict(type='DecordDecode') 修改为 dict(type='RawFrameDecode', **file_client_args),并确保在配置文件中定义了 file_client_args = dict(io_backend='disk')

    有关自定义数据集的更多修改,请参考准备数据集自定义数据集

测试

  • 如何使预测得分在 softmax 内归一化到 [0, 1] ?

    在配置文件中将 model.cls_head.average_clips 设置为 'prob'

  • 如果模型过大,GPU 内存无法容纳甚至只有一个测试样本怎么办?

    默认情况下,3D 模型使用 10 个 clips x 3 个 crops 进行测试,总共有 30 个视图。对于非常大的模型,即使只有一个测试样本,GPU 内存也无法容纳(因为有 30 个视图)。为了解决这个问题,您可以在配置文件的 model['test_cfg'] 中设置 max_testing_views=n。这样,在前向传播过程中,会使用 n 个视图作为一个批次,以节省 GPU 内存的使用。

Read the Docs v: latest
Versions
latest
0.x
dev-1.x
Downloads
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.