我是靠谱客的博主 妩媚蚂蚁,最近开发中收集的这篇文章主要介绍解决:RuntimeError: mat1 and mat2 shapes cannot be multiplied (8x256 and 8x256)维度不匹配问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在设计网络是,前面几层是去噪网络,后边几层是分类网络,因为之前没有接触过分类任务,对全连接层输入维度不太理解,出现错误RuntimeError: mat1 and mat2 shapes cannot be multiplied (8x256 and 8x256)
解决方法:查看上一层卷积的输出值大小,发现在这里插入图片描述
原因:

卷积层的输入为四维[batch_size,channels,H,W] ,而全连接接受维度为2的输入,通常为[batch_size, size]。
所以需要进行变换
添加以下语句:

x = x.view(x.shape[0], -1)
得到大小为([8, 256])

而对于fc层需要根据上面的输出更改输入,及将下面语句的8改为256,跑通

self.fc1 = nn.Linear(8, 256)

最后

以上就是妩媚蚂蚁为你收集整理的解决:RuntimeError: mat1 and mat2 shapes cannot be multiplied (8x256 and 8x256)维度不匹配问题的全部内容,希望文章能够帮你解决解决:RuntimeError: mat1 and mat2 shapes cannot be multiplied (8x256 and 8x256)维度不匹配问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部