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);

——如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM