python-3.x - RuntimeError:大小不匹配,m1:[4 x 3136],m2:[64 x 5] 在 c:\a\w\1\s\tmp_conda_3.7_1
解决方案
您的代码对resnet进行了更改:您更改了通道数量,每个“级别”的瓶颈数量,并且您完全删除了一个“级别”。结果,您在末尾拥有的特征图的维度layer3
不是64:您的空间维度比您预期的要大nn.AvgPool2d(8)
。您收到的错误消息实际上告诉您输出的level3
形状为64
x 56
x 56
,并且在使用内核和步长 8 进行 avg 池化之后,您有64
x 7
x 7
=3136
维度特征向量,而不是您期望的只有 64。
你能做什么?
与“标准” resnet 不同,您删除了 strideconv1
并且在conv1
. 而且,你删除layer4
了其中也有一个大步。因此,您可以在网络中添加池化以减少layer3
.
或者,您可以替换nn.AvgPool(8)
为nn.AdaptiveAvgPool2d([1, 1])
仅输出一个特征的 avg 池,而不管输入特征图的空间维度如何。
推荐阅读
- php - 创建后以编程方式将页面添加到菜单
- node.js - fastify 服务 angular6 应用
- jenkins - jenkinsfile 发送电子邮件通知
- java - Android Studio:如何在一个按钮中设置标题和描述?
- javascript - 将解析的 JSON 读入数组不起作用?
- javascript - TypeError:上传文件时无法读取Node js中未定义的属性“路径”
- javascript - Protractor browser.executeScript 在参数列表后抛出“SyntaxError: missing )”异常
- spring-boot - 如何为现有的 jhipster 项目重新生成新的 JPA 实体(以及不同数据库模式中的数据库表)?
- macros - 宏sas中无法确定行列
- kubernetes - Kubernetes 作业 pod 已成功完成,但其中一个容器尚未准备好