pytorch复现CoMA论文

急求!!!每次进入到切比雪夫卷积的函数时,在此处就会报错

error:“The size of tensor a (29990) must match the size of tensor b (5023) at non-singleton dimension 0”

请问有人知道是怎么回事吗?应该怎么解决这个问题呢?有的人用官网上现成的代码无此问题

看起来是维度不对,打印 x_j,norm 两个变量看看是什么样的

 

张量a(29990)的大小必须与张量b(5023)的大小在非单体维度0处匹配

维度匹配问题

X_j 和norm.view(-1,1,1)的尺寸是这样的。29999和5023是不匹配,但是我不太清楚为什么在此处不匹配。代码是从CoMA网站上下载的。希望有做过CoMA的可以帮忙看一下。感谢

你的这个维度确实有问题,如果这个函数没问题,就是上面数据处理出了问题,就这个函数来说,如果尺寸要对应的话,改成 return norm.view(1,-1,1)*x_j 应该是可以对应的。

想起来了,如果你改之后这个函数跑通了,但在后续的过程中出了问题。或者这个函数你不想改,那就是在传参的时候,x_j 变成 x_j.permute(1,0,2) 去入参 也是可以的

我用了你的方法加上x_j.permute(1,0,2)这个错误虽然通过了但是后面依然会出现tensor不匹配的问题。这个代码是网站上源代码,我都没有改动过,所以不知道改一两处的话会不会导致其他地方又会出现问题呢?

是的,既然函数是固定的,而且这步norm.view之后的维度也固定了,那这里肯定就是x_j的维度错了,所以这里你应该先转置x_j,并赋值给原变量.像这样:   x_j= x_j.permute(1,0,2)    ,然后原来的代码不用动,还是传参x_j(这时的x_j 维度应该正常了)。

如果下面还是报错,那就x_j 就不止一个维度错误,其他两个维度可能还有问题。如果这样的话我需要调试你的代码,如果上面行不通,你就把代码和数据发我来调试看看。

你好,tensor不匹配的问题解决了吗

小窗给代码看看,直接调试给你解决。