ripplenet程序实现笔记(TensorFlow版本)

Ripple原文地址: https://arxiv.org/pdf/1803.03467v4.pdf

ripple算法的Tensorflow版本下载地址:https://github.com/hwwang55/RippleNet

Pytorch版本下载地址:https://github.com/qibinc/RippleNet-PyTorch 

说明:ripplenet文章所附的tensorflow版本的程序里要求的是TensorFlow-GPU-1.4.0

Numpy=1.14.5,sklearn=0.19.1

根据要求配置环境我配置的环境如下

python3.6.5

TensorFlow-GPU-1.4.0

Cuda 8.0  cudnn6.0(注意cuda8.0和cudnn6.0只能匹配pytorch1.0所以使用pytorch实现时需注意)

numpy == 1.16.6(文章中用的是numpy1.14.5,但经过试验后没法运行程序)

scipy == 1.41

sklearn == 0.19.1

一、python环境配置

首先下载anaconda3,(我的电脑里面因为安装了VS2019,所以已经安装好了Microsoft Visual C++ 2015-2019 Redistributable (X86) 和(X64)两个版本。如果电脑没有安装VS软件,可以先安装一下这两个东西。)一般直接在清华镜像源里下载(清华镜像源)anaconda3和python对应的关系见anaconda python 版本对应关系因为需要的是3.6.5版本python,所以下载anaconda4.3.0版本的(其实第一次我下载的适配python3.5版本的anaconda4.2.0.版本的也是可以使用的)安装就一路next到底就可以,当然,我建议不要将anaconda安装到c盘,因为后续要建立很多环境下载很多拓展包,会把c盘空间占的很满,导致电脑变慢,所以我安装的是f盘

一路next就可记得勾选添加路径,这里我们不选择默认python3.6,因为之后各种项目用到的python版本是不同的,在配置环境的时候,可以用不同的python版本

当你勾选了添加环境变量以后,使用anaconda prompt和使用cmd就没有什么区别了,

那么使用win+R打开运行,输入cmd,再输入代码

python

(注意这里的python版本并不是我们要用的,是安装anaconda自带的),就可以看到配置信息了

二、安装TensorFlow对应的cuda和cudnn

安装这个首先要知道自己电脑是否有gpu,有才可以安装,论文中要求使用tensorflow-gpu-1.4.0版本,对应的cuda为8.0版本和cudnn6.0版本

由于cuda更新较快,所以需要下载cuda历史版本

cudnn官网下载图,记得看清楚版本号详细参考文章cuda安装教程+cudnn安装教程

三、配置tensorflow所需要的环境

1、安装tensorflow

重新打开cmd(或者输入exit()退出python)

创建名字叫mytf的环境,输入

conda create -n mytf python=3.6

(这里如果输入3.6则是python3.6系列里最新的版本,也可以直接输入3.6.5安装,还要注意一点的就是我之前用的-name创建环境会出现PackageNotFoundError: Package not found这个错误,后来按照他提示的步骤也没解决,只能用-n来创建,我记得好像-name也可以创建来着)

完成之后就着这样的

输入

activate mytf

(mytf为环境名字) 激活环境

输入

pip install tensorflow-gpu==1.4.0 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

安装tensorflow-gpu版本的,注意这里安装的时候不要加--upgrade --ignore这俩个字符串,如果加这俩个后面可能会导致conda使用的时候报错,-i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com是我后面加的阿里镜像源(加镜像源-i前一定要有空格),这样下载速度会加快很多,不加也可以,只不过在国内下载国外的软件会很慢,还是不是因为网络问题报错,还要重新下载

(我又卸载了重新安装了一下,上面是使用镜像源与使用镜像源对比速度500kb/s vs12.8mb/s,高下立判了家人们)

接下来我们检验以下tensorflow是否安装成功

重新进入cmd

使用

activate mytf

进入环境

输入

python

进入python中,接下来输入

import tensorflow as tf

hello=tf.constant("hello, tensorflow")

sess=tf.Session()

print(sess.run(hello))

如果出现

(最后一行print要输一个回车才能输出)说明安装成功

2、安装numpy包

在实现程序的过程中,我一开始安装的numpy版本是1.14.5,就是按照原文的numpy版本安装的,但是在最后运行的时候会报错说版本不匹配,于是我又从网上找了一下发现文章要求的sklearn0.19.1包对应的numpy是1.16.6版本的,所以我又下载了numpy1.16.6版本的,发现最后成功运行,所以我们安装1.16.6版本的numpy

在安装时,我们发现在上一步安装的tensorflow时,已经安装了一个版本的numpy

可是这个不是我们需要的版本,但是不用慌,只需要直接输入

pip install numpy==1.16.6 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

它就会自动删除原版本的numpy换成安装的版本 完成!

3、安装sklearn0.19.1包

在安装sklearn包时,它有前置条件,就是要求有numpy以及scipy,我们接着下载对应版本scipy1.4.1包,使用代码

pip install scipy==1.4.1 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

 安装成功后,打开环境所对应的文件夹会发现多出来numpy和scipy包的文件夹如图

4、安装sklearn0.19.1包

最后在前面都安装成功以后就可以安装sklearn了,同样使用阿里镜像源

pip install scikit-learn==0.19.1 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

这个时安装完成的程序图

Ok到这里环境配置就已经完成了

5、另一种方法

上面前四点说明的是比较简单的直接下载方式,但是会因为网络原因等其他关系下载失败,那么我这里简绍另一种安装方式,就是直接将所需要的拓展包下载到电脑上,使用pip安装,这样就不用担心因为网络问题而进行不下去了

可以在python拓展包这个网站中,下载到各种各样的拓展包

这里还有一个缺点就是有些历史版本找不到,不过这里需要注意的是,这里下载的时候一定要记得自己创建的环境python版本,用上图举例安装pytorch1.6.0,cp36就是指着python版本是3.6的,amd64就是64位操作系统适用的, 下载到电脑上后,打开cmd中的环境,进入到下载的路径中

输入

pip install torch-1.6.0-cp36-cp36m-win_amd64.whl

这里需要提醒一点,输入pip install时后面跟的时文件的全称,包括后缀.whl

 安装会快捷很多,不受网络影响

四、运行ripple算法程序

1、pycharm中配置环境

ripple算法的tensorflow版本下载地址:https://github.com/hwwang55/RippleNet

Pytorch版本下载地址:https://github.com/qibinc/RippleNet-PyTorch 

那么现在开始运行程序,打开pycharm,先打开你整个ripple程序包

然后选择整个项目运行的环境,点击setting,再点击右上角的齿轮会有add字样,选择下面的已经存在的环境选项,找到自己安装anaconda的地方,我安装的地方是f盘,选择envs文件夹,打开自己创建的环境mytf,选中Python.exe就可以了

 (这里需要注意的时,可能pycharm版本更新的很快,最新版本的pycharm在设置环境的之后会出现unsupported字样,那就是pycharm最低版本高于整个项目的python版本。举个栗子,我之前环境用的Python3.5,但是下载的2021.2.2版本的pycharm发现不支持python3.5版本,所以又卸载了新的下载的2019版本的)

配置好的环境如上图,可以看到环境里有文章需要的包,如果一开始没显示完全就点右边的绿色小圆圈,在配置成功以后pycharm右下角会出现

2、运行程序

终于到了这一步了,按照文章要求

第一步、在下面terminal栏中首先输入

cd src

进入src文件夹(注意要在自己创建的环境中运行,没有在创建的环境中运行会显示找不到numpy,找不到TensorFlow等问题)

第二步、然后预处理数据

python preprocess.py --dataset movie

预处理过后我们可以看到movie文件夹中多了俩个txt文件,这个就是预处理的结果

第三步、输入

python main.py --dataset movie

开始处理数据

在运行时又会多出俩个文件kg_final.npy和ratings_final.npy,那么这时候就是在运行程序了(当时我电脑风扇狂响),然后我们可以打开任务管理器看下

内存和gpu都保持高位运行,也说明就是在运行程序。我的笔记本还是960m的,所以运行起来非常慢,我记得当时第一次运行了整整一晚上,就是睡觉前开始跑,醒来才出结果,调用一张之前的结果图

OK到这里整个程序就全部运行完成了

最后说一句,pytorch版本的程序我也运行成功了,无非就是重新配一个要求的环境再运行一遍,只要注意版本匹配就不是很困难,这里就不赘述了。这篇文章主要参考了WIN10 配置并运行RippleNet算法,并且改进了和更新了许多这篇文章中不足的地方,其中有一部分就是跟着这篇文章踩的坑¯_¯,所以我才又想写这个笔记,不过还非常感谢这位博主,不然我一点都不会。

五、针对运行后的结果还存在的一些疑问

1、至于最后显示的这个结果,我好像只知道它是遍历了10次,至于5次或者20次的结果如何,我想后续再实验一下。

2、然后训练集分类器auc值逐渐增大,说明效果越来越好,后面acc准确率也在逐渐增大,但是后面的测设集分类器的auc值只能说保持稳定,而且又和训练集分类器auc差距这么大,不知道算不算正常现象,中间的eval auc代表什么意思还不太懂。

3、现在想知道最后的训练结果如何看到,不知道看哪里或者说怎么看,还有就是输出的kg_final.npy和ratings_final.npy如何打开,尝试用python或者txt方式打开都是乱码的。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【资源说明】 基于知识图谱的推荐算法RippleNetpython实现源码+项目说明+数据集.zip基于知识图谱的推荐算法RippleNetpython实现源码+项目说明+数据集.zip基于知识图谱的推荐算法RippleNetpython实现源码+项目说明+数据集.zip基于知识图谱的推荐算法RippleNetpython实现源码+项目说明+数据集.zip基于知识图谱的推荐算法RippleNetpython实现源码+项目说明+数据集.zip 基于知识图谱的推荐算法RippleNetpython实现源码+项目说明+数据集.zip 基于知识图谱的推荐算法RippleNetpython实现源码+项目说明+数据集.zip基于知识图谱的推荐算法RippleNetpython实现源码+项目说明+数据集.zip基于知识图谱的推荐算法RippleNetpython实现源码+项目说明+数据集.zip 运行环境 python == 3.7.0 torch == 1.12.0 pandas == 1.1.5 numpy == 1.21.6 sklearn == 0.0 数据集介绍 music-音乐 book-书籍 ml-电影 yelp-商户 文件介绍 ratings.txt:记录用户点击的项目,1代表点击了,0代表没有点击 kg.txt:知识图谱文件,第一列是头实体,第二列是尾实体,第三列是关系 user-list.txt:用户及其id文件,第一列是用户的id,第二列是用户 其余文件可忽略 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值