问题记录5——重要的from mmcv import print_log问题

  1. 在试图运行test.py及train.py的过程中遇到了问题:
    问题记录5——重要的from mmcv import print_log问题_第1张图片
    使用的mmcv=2.0.0,不知道为什么无法导入print_log,当我在mmcv文档中查到from mmengine.logging import print_log,修改之后仍然有这个错误。因为第二个蓝色的链接路径中也导入了print_log但无法修改包。
  2. 在安装mmcv-full和mmdet的过程中遇到了下面的问题
    问题记录5——重要的from mmcv import print_log问题_第2张图片
    这个问题是torch版本造成的,我安装了pytorch2.0.0,nvidia-smi查看的cuda版本是11.7,我按照查到的方法将torch版本调整到1.13.1,解决了这个问题。参考网址
    在安装pytorch过程中,我开始是创建虚拟环境,安装2.0.0,cuda11.7, 但安装成功后的torch.cuda.is_available()的值为false,我又重新安装1.8.0, cuda10.2后,在更新为2.0.0,torch.cuda.is_available()的值就会变为true,想不通为什么。有看到文章的友友能帮我解答的,我将十分感激。
  3. 在按照代码的readme运行pip install -v -e .时遇到了下面的问题
    Obtaining file:///E:/Large-Selective-Kernel-Network
    Running command python setup.py egg_info
    error in mmrotate setup command: ‘extras_require’ must be a dictionary whose values are strings or lists of strings containing valid project/version requirement specifiers.
    error: subprocess-exited-with-error

    问题记录5——重要的from mmcv import print_log问题_第3张图片
    应该是由于缺少包而引起的,重新运行了pip install -r requirements.txt之后,再运行pip install -v -e .,产生了问题4
  4. PermissionError: [WinError 5] 拒绝访问。: ‘E:\Large-Selective-Kernel-Network\mmrotate\.mim\demo\demo.jpg’
    error: subprocess-exited-with-error
    问题记录5——重要的from mmcv import print_log问题_第4张图片
    出现这个问题是因为之前我已经运行成功了pip install -v -e .,产生了两个新的文件夹“.mm”和“mmrotate.egg-info”,产生的文件因权限不能覆盖进行删除,如下图所示
    问题记录5——重要的from mmcv import print_log问题_第5张图片
    我删除这两个原来产生的文件夹后,重新运行命令,解决了该问题。

问题记录5——重要的from mmcv import print_log问题_第6张图片

问题记录5——重要的from mmcv import print_log问题_第7张图片
在python环境下运行下列代码会出现同样的报错。

import numpy as np
feats_sc = np.array([])
feats_sc = np.concatenate(feats_sc, axis=1)

主要原因是numpy的concatenate的参数feats_sc的值为空。最后发现是因为我的数据集路径少了“/”,即dotav1.py中的annfiles和img中dataroot+"/trainval"请大家一定仔细检查。

  1. RuntimeError: Default process group has not been initialized, please make sure to call init_process_group.
    这是因为源码是多卡训练,但我的电脑只有一个GPU,单GPU训练和多GPU训练有所不同。下面的图片是lsk_s_fpn_1x_dota_le90.py中部分代码截图。
    问题记录5——重要的from mmcv import print_log问题_第8张图片
    norm_cfg中,如果是多卡训练,采用“SyncBN”; 如果是单卡训练,将type修改为’BN’即可。

你可能感兴趣的:(越改越少的bug,python,深度学习,pytorch)