Debug 路漫漫-04

 1、错误使用 cat

要串联的数组的维度不一致。

——前面给个初始化即可:

  D = cell(length(trainIdx),1);
  user_itemData = cell(length(trainIdx),1);

 2、

  

  这个 ixW 是对 winner 进行更新,ixV 是对 loser 进行更新,那第三个式子,要对 yItem(所有Item) 进行更新,也就无区分winner或loser,对所有item 进行更新,并不可以这样用吗: D(p{j},2:3 【会提示维度不一致】

   D 的结构是:user -- winner -- loser (那这边两列要怎么同时更新呢?要注意:win和lose可能有交集的阿 )

   若是这样:更新它们的交集(亦不行)

   解决办法: 对 yItem的更新也划分为winner 和 loser !

   

 3、

 

   u是609999 * K,uOnly是62101*K(真实的user个数),想要用uOnly 来填充u。。。

  但是这个 把p覆盖了。

解决办法:放到外面去:

4、

位置 1 的索引超出数组范围(不能超过 1)。
出错 FSBPRRankEval (line 21)
s = yU(u,:)*V(candItems,:)'; 

解决办法: 

5、内存不足??

—— pred是1 x k,后面那个算出来是k x 1,两个累加就是k x k,k还是训练集的个数, 不爆才怪??

6、无法执行赋值,因为左侧和右侧的元素数目不同。
出错 NCR_AMF_nobias_baseline>graded_solver (line 168)
pred(pr) =(exp(u(:,1))./sum(exp(u(:,1))).*(exp(theta)*v(:,1)+v(:,2:end)));

—— pred(pr)是一个数, 右边是个向量,(only say once ==)

exp(u(:,1)) kx1;sum() 1x1;exp() 1x1; v(:,1) K x 1; v(:,2:end) K x (end-1)。。。

假设v的K和u的k一样,即使前面点乘了,除过去,出来的结果也是最后那个k x (end-1)。。。。。。。

 7、

无法执行赋值,因为左侧的索引与右侧的大小不兼容。
出错 NCR_AMF_nobias_baseline>graded_solver (line 157)
ixV(:,m) =
(exp(u(:,m)).*exp(theta)+sum(exp(u),2)-exp(u(:,m)))./sum(exp(u),2);

——如下:

原文地址:https://www.cnblogs.com/shenxiaolin/p/9521696.html