相关文章推荐
气势凌人的跑步机  ·  The History Of Whoo ...·  2 月前    · 
爱看书的羽毛球  ·  β-catenin、Wnt1、Smad4、H ...·  4 月前    · 
俊逸的充值卡  ·  台灣洪水·  2 年前    · 
踏实的墨镜  ·  15分钟速读《快速阅读》 - ...·  2 年前    · 
另类的路灯  ·  汪苏泷女朋友是谁汪苏泷的现任女朋友是圈外人汪 ...·  2 年前    · 
小百科  ›  为什么我有错误:给定groups=1,大小的权重[8,1024,1,1],期望输入[8,304,9,40]有1024个通道,但得到304个通道开发者社区
才高八斗的人字拖
11 月前
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
提问

问 为什么我有错误:给定groups=1,大小的权重[8,1024,1,1],期望输入[8,304,9,40]有1024个通道,但得到304个通道

Stack Overflow用户
提问于 2022-09-03 15:49:39
EN

我正在与 yolostereo3d 的stereo3d对象检测(仅立体声摄像机,没有天鹅绒)在基蒂数据集上工作,以 edgeNext 为骨干,而不是resNet。

在使用相同的基蒂数据集将主干网从resNet更改为edgeNext之前,一切正常。但是,之后我开始出现以下错误:

代码语言: javascript
复制
RuntimeError: Given groups=1, weight of size [8, 1024, 1, 1], expected input[8, 304, 9, 40] to have 1024 channels, but got 304 channels instead

下面是我如何改变脊梁的方法:

代码语言: javascript
复制
class YoloStereo3DCore(nn.Module):
        Inference Structure of YoloStereo3D
        Similar to YoloMono3D,
        Left and Right image are fed into the backbone in batch. So they will affect each other with BatchNorm2d.
    def __init__(self, backbone_arguments):
        f = open("/home/zakaseb/Thesis/YoloStereo3D/Stereo3D/Sequence.txt", "a")
        f.write("yolosterero3dCore_init \n")
        f.close()
        super(YoloStereo3DCore, self).__init__()
        self.backbone =edgenext_small(**backbone_arguments) # Resnet, change backbone from here
        base_features = 256 #if backbone_arguments['depth'] > 34 else 64 # meaning which depth of resnet
        self.neck = StereoMerging(base_features) #stereomerging outputs features and depth output.

下面是edgenext_small()

代码语言: javascript
复制
@BACKBONE_DICT.register_module
def edgenext_small(pretrained=False, **kwargs):
    FPS @ BS=1: 93.84 & @ BS=256: 1785.92 for MobileViT_S
    model = EdgeNeXt(depths=[3, 3, 9, 3], dims=[48, 96, 160, 304], expan_ratio=4,
                     global_block=[0, 1, 1, 1],
                     global_block_type=['None', 'SDTA', 'SDTA', 'SDTA'],
                     use_pos_embd_xca=[False, True, False, False],
                     kernel_sizes=[3, 5, 7, 9],
                     d2_scales=[2, 2, 3, 4],
                     classifier_dropout=0.0)
    return model
1 50 0 票数 0
EN
python
pytorch
object-detection
yolo
stereo-3d

回答 1

Stack Overflow用户

发布于 2022-09-03 23:57:58

如您所见,您的主干返回304个通道的功能映射,但下一个层期望1024个通道。目前有两种解决方案:

  • 如果您的主干是从头开始设计的,那么您可以调整它的体系结构,使 dims 参数的 EdgeNeXt 以1024结尾。典型情况是:
代码语言: javascript
复制
model = EdgeNeXt(depths=[3, 3, 9, 3], dims=[48, 96, 160, 1024], expan_ratio=4,
 
推荐文章
气势凌人的跑步机  ·  The History Of Whoo 天氣丹華炫重生水25ml - Radiant Rejuvenating ...
2 月前
爱看书的羽毛球  ·  β-catenin、Wnt1、Smad4、Hoxa9、Bmi-1与食管鳞癌预后的关系
4 月前
俊逸的充值卡  ·  台灣洪水
2 年前
踏实的墨镜  ·  15分钟速读《快速阅读》 - 杰Sir有话说- 简书
2 年前
另类的路灯  ·  汪苏泷女朋友是谁汪苏泷的现任女朋友是圈外人汪苏泷还为她提鞋!_ ...
2 年前
Link管理   ·   Sov5搜索   ·   小百科
小百科 - 百科知识指南