复现推荐系统论文的代码结果(深度学习,Pytorch,Anaconda)

Disentangling User Interest and Conformity for Recommendation with Causal Embedding这篇文章的代码为例,代码地址在:GitHub - tsinghua-fib-lab/DICE: The official implementation of "Disentangling User Interest and Conformity for Recommendation with Causal Embedding" (WWW '21)

先在github上把代码clone下来,解压缩。用Pycharm导入项目。在可以真正运行这个代码之前,有许多工作要做。

首先在Pycharm中切换python解释器,这里用之前预先准备好的在anaconda里建立的含pytorch、机器学习库等基础第三方库的环境,python版本为3.8。

项目还用到了许多第三方的包,而自己的电脑环境里没有。在Pycharm里找到标红的import代码,在anaconda里的开启终端,切换到我们预设的环境里。输入以下命令安装对应缺失的第三方库。

pip install xxxx

可能出现的问题是,下载速度较慢,那么就使用代理。

pip install package_name --proxy http://127.0.0.1:7890

package_name改成自己要安装的包名。这个方法是针对有代理工具的朋友,如果你看不懂我在说什么,那么就去找镜像源,百度搜索 给python设置镜像源 的教程。之前在anaconda设置过代理,但是那个代理只对conda命令起效,对pip命令没有效果。

这个项目里有一个第三方库,直接用pip安装是安装不了的,因为它只提供了Linux和MacOs版。好在通过询问new bing,找到了windows安装的方法(时代变了,人工智能牛逼)。安装完全部缺失的第三方库,应当不再有标红的代码。

修改代码里的绝对路径,把DICE/src/config/const.py里的m110m和nf数据集路径都改成自己的。

ml10m = '/home/zhengyu/workspace/DICE/data/ml10m/output/'
nf = '/home/zhengyu/workspace/DICE/data/netflix/output/'

m110m='D:/DICE/data/m110m/output'
nf='D:/DICE/data/netflix/output'

注意直接从windows资源管理器地址栏里复制的路径是反斜杠'\',要手动把它切换为正斜杠'/'才行。另一处要修改路径的地方在app.py文件下,输出结果的路径。

flags.DEFINE_string('output', '/home/zhengyu/workspace/DICE/output/', 'Directory to save model/log/metrics.')

改为
flags.DEFINE_string('output', 'D:/DICE/output/', 'Directory to save model/log/metrics.')

在运行项目之前,还需要安装一个东西。本文用到了visdom这个绘图工具包,用来在训练过程中可视化loss,recall等数据。用pip install visdom安装这个工具包。但是在使用python -m visdom.server命令开启visdom服务的时候,会显示需要下载某些资源,等半天也下载不了。直接把报错提示粘贴到百度去搜,得到解决方案,把源码里的一个download函数注释掉,然后去下别人提供的static资源,替换掉原来自带的static文件夹。目前来看这是一个老版本没有,而新版本visdom才有的问题,应当是国内特有的网络环境导致的,未来是否会修复也不清楚。

现在visdom和代码都准备好了,尝试运行项目。本文作者的教程只给了两个很简单的命令,一个是

visdom -port 33336

这条命令是开启visdom服务,并且设置运行端口为33336.开启成功后,通过localhost:33336进入web GUI页面。

第二条命令是

python app.py --flagfile ./config/xxx.cfg

执行这条命令之前,要先用cd切换到app.py所在的目录下。xxx.cfg就填config文件夹里的文件名,比如想运行DICE模型,数据集是netfilx,那么就是nf_dice.cfg

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值