急求!!!每次进入到切比雪夫卷积的函数时,在此处就会报错
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不匹配的问题解决了吗
小窗给代码看看,直接调试给你解决。