RUCAIBox / NCL

[WWW'22] Official PyTorch implementation for "Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning".
119 stars 20 forks source link

GPU设置 #48

Closed wenyi-zhh closed 10 months ago

wenyi-zhh commented 1 year ago

你好,请问设置在服务器的具体哪张GPU跑是配置 image 中的local_rank = 1这样吗?为什么我设置了之后,运行的时候还是显示gpu_id = 0?如果不是,请教一下应该如何设置呢?

hyp1231 commented 1 year ago

你好,local_rank 是多卡并行相关的参数,设置 gpu 的参数是 gpu_id,例如:

python run_recbole.py --gpu_id=3

如果这样没办法更改 gpu,可以尝试

CUDA_VISIBLE_DEVICES=3 python run_recbole.py
wenyi-zhh commented 1 year ago

你好,local_rank 是多卡并行相关的参数,设置 gpu 的参数是 gpu_id,例如:

python run_recbole.py --gpu_id=3

如果这样没办法更改 gpu,可以尝试

CUDA_VISIBLE_DEVICES=3 python run_recbole.py

好的,感谢回复。另外,我在阅读论文的过程中还有一些问题,希望能得到您的解答。文章中提到的first even layer的变体是最好的,可是实际的效果图显示第一跳的效果是最好的呀?望指教。 image

hyp1231 commented 1 year ago

你好,4.3.3 章对表 3 中 Hop 的定义是:

we select the nodes in one-, two-, and three-hop as the structural neighbors and test the effectiveness when incorporating them with contrastive learning.

structural neighbor 指的是同为 user-user 图或者同为 item-item 图上的邻居(参考模型图,这里的结构不是 user-item 交互构成的二分图,而是基于二跳关系构建的 u-u 和 i-i),所以每个 hop 在实现上对应 GNN 每个偶数层。例如 LightGCN 为 backbone 的时候,第一个偶数层(layer 2)的 user representation 是 layer 0 的 user embedding 的线性组合,layer 2 的 user representation 是 u-u 图上的 1-hop