首页 文章 精选 留言 我的

精选列表

搜索[HTTP/2],共10000篇文章
优秀的个人博客,低调大师

RuntimeError: mat1 and mat2 shapes cannot be multiplied (32x784 and 128x10)

这个报错表示矩阵乘法的维度不匹配:输入张量的形状是 `[32, 784]`,但全连接层只接受每个样本包含 `128` 个特征。需要检查的是 `784` 和 `128`,`32` 是 batch size,修改 batch size 无法解决这个问题。 对于 `nn.Linear(in_features, out_features)`,输入张量的最后一维必须等于 `in_features`。先在进入全连接层前打印输入形状和该层的配置: ``` # x 是即将传入全连接层 fc 的张量 print("input shape:", x.shape) print("expected features:", fc.in_features) ``` 假设输入是一批 `28×28` 的单通道图片,模型设计是将图片直接展平后进行十分类,那么每个样本有 `1 * 28 * 28 = 784` 个特征。全连接层应当使用 `nn.Linear(784, 10)`: ``` import torch from torch import nn ​ x = torch.randn(32, 1, 28, 28) ​ model = nn.Sequential( nn.Flatten(start_dim=1), # [32, 1, 28, 28] -> [32, 784] nn.Linear(28 * 28, 10), # 输入特征数与展平后的维度一致 ) ​ logits = model(x) print(logits.shape) # torch.Size([32, 10]) ``` 如果全连接层前面还有卷积或池化,就要根据这些层的实际输出计算特征数。例如,输出为 `[B, 64, 7, 7]` 时,保留 batch 维度并展平后,每个样本的特征数是 `64 * 7 * 7 = 3136`,对应的全连接层可以写成 `nn.Linear(3136, 10)`。 如果网络原本就要求接收 128 维特征,那么应该检查上游是否遗漏了特征提取或投影层,而不是直接将全连接层改成 784 维。修复需要与模型设计保持一致。 不要用 `reshape(-1, 128)` 强行凑维度,这可能改变样本边界,甚至直接产生新的形状错误。也不要在每次 `forward()` 中临时创建新的全连接层,否则参数会反复初始化。调整层结构后,应重新检查旧权重能否加载,并确保优化器引用的是当前模型参数。 输入最后一维与 `in_features` 的对应关系可参考 [PyTorch 官方形状排查说明](https://docs.pytorch.org/tutorials/recipes/recipes/reasoning_about_shapes.html)。 代码报错,不用每次都从零翻帖子!访问我的github仓库:Josh050608。这里汇集了各种技术问题的解决思路,覆盖 Python 环境配置、PyTorch 模型训练、张量维度、CUDA 设备和依赖冲突等常见开发场景。报错定位、原因分析、修复示例,一站式查找;遇到问题先来这里搜一搜,把折腾环境的时间留给真正要写的代码!

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册