PyTorch Geometric使用VGAE触发mat1 dim1与mat2 dim0不匹配报错
问题原因
该报错为矩阵乘法维度不匹配导致,从错误栈可定位到问题出在第一层GCNConv的线性变换运算x = x @ self.weight处:
- 你手动指定输入特征维度
num_features=128,因此第一层GCNConv的权重矩阵维度为[128, 4](4为2*out_channels,你设置的out_channels为2) - 实际输入的节点特征
x维度为[132, 132],即共132个节点,每个节点的特征维度为132,和你设置的GCN输入通道数128不一致,矩阵运算时x的第二维和权重的第一维无法对齐,触发报错。
解决方法
可根据你的实际场景二选一修改:
- 若节点特征本身就是132维,修改
num_features参数和实际维度对齐即可:
out_channels = 2 num_features = 132 # 替换原有的128 model = VGAE(VariationalGCNEncoder(num_features, out_channels))
- 若节点特征预期为128维,检查节点特征的预处理/生成逻辑,修正代码让输出的
x维度为[132, 128],和你设置的num_features匹配即可。
内容的提问来源于stack exchange,提问作者Carlo Amodeo
相关产品推荐
相关产品推荐

