mmsegmentation修仙之路-bug篇(3)

合集目录
  1. mmsegmentation修仙之路-bug篇(1)
  2. mmsegmentation修仙之路-bug篇(2)
  3. mmsegmentation修仙之路-bug篇(3)

ValueError: expected 4D input (got 3D input)

这个是在训练swin-t主干网络时遇到的问题,原因是使用了BatchNorm函数。
解决的方法就是不需要在模型的backbone添加 ‘norm_cfg’。

AttributeError: class ‘EncoderDecoder’ in mmseg/models/segmentors/encoder_decoder.py: class ‘Mask2FormerHead’ in mmseg/models/decode_heads/mask2former_head.py: ‘ConfigDict’ object has no attribute ‘transformerlayers’

参考:https://github.com/open-mmlab/mmsegmentation/issues/2619
解决办法:
应该是版本问题,下载mmdet dev-3.x的代码并安装可以解决,直接mim install mmdet >=3.0.0rc5,不行。

RuntimeError: DataLoader worker (pid 449) is killed by signal: Killed.

Traceback (most recent call last):
  File "/root/miniconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1011, in _try_get_data
    data = self._data_queue.get(timeout=timeout)
  File "/root/miniconda3/lib/python3.8/multiprocessing/queues.py", line 107, in get
    if not self._poll(timeout):
  File "/root/miniconda3/lib/python3.8/multiprocessing/connection.py", line 257, in poll
    return self._poll(timeout)
  File "/root/miniconda3/lib/python3.8/multiprocessing/connection.py", line 424, in _poll
    r = wait([self], timeout)
  File "/root/miniconda3/lib/python3.8/multiprocessing/connection.py", line 931, in wait
    ready = selector.select(timeout)
  File "/root/miniconda3/lib/python3.8/selectors.py", line 415, in select
    fd_event_list = self._selector.poll(timeout)
  File "/root/miniconda3/lib/python3.8/site-packages/torch/utils/data/_utils/signal_handling.py", line 66, in handler
    _error_if_any_worker_fails()
RuntimeError: DataLoader worker (pid 449) is killed by signal: Killed. 

问题描述:没有GPU却调用了GPU。

RuntimeError: Sizes of tensors must match except in dimension 1. Expected size 76 but got size 75 for tensor number 1 in the list.

原因分析:
报错显示size不匹配,向上看报错提到torch.cat([upsample_feat, feat_low], 1)),说明是upsample_feat,和feat_low的维度不匹配造成的。现在的网络很多都会融合多尺度信息,这样下采样或者上采样后,取整的方式可能存在差异,导致高低维特征融合时存在不匹配现象。
解决办法:
1、将训练图像resize为32的整数倍,即可避免出现取整,从而避免问题发生。(推荐)
2、将cat中特征resize至相同大小。

你可能感兴趣的:(bug,python,开发语言)