ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

GRU4Rec 快速上手:3 步跑通会话推荐训练

GRU4Rec 快速上手:3 步跑通会话推荐训练 GRU4Rec 快速上手3 步跑通会话推荐训练【免费下载链接】GRU4RecGRU4Rec is the original Theano implementation of the algorithm in Session-based Recommendations with Recurrent Neural Networks paper, published at ICLR 2016 and its follow-up Recurrent Neural Networks with Top-k Gains for Session-based Recommendations. The code is optimized for execution on the GPU.项目地址: https://gitcode.com/gh_mirrors/gr/GRU4RecGRU4Rec 是 ICLR 2016 会话推荐论文的原始 Theano 实现一条命令完成训练与评估适合搭建会话推荐基线的人。跑 GRU4Rec 前先确认两个前提第一是硬件项目把几乎全部计算压在 GPU 上自定义 CUDA 算子让 CPU 运行直接失败所以你需要一块支持 CUDA 的显卡。第二是版本Python ≥ 3.6.3、theano 1.0.5、较新的 numpy 与 pandas外加 CUDA 和 libgpuarraycuDNN 可以装但要按后文的配置禁掉。环境就绪后把代码拉下来git clone https://gitcode.com/gh_mirrors/gr/GRU4Rec.git预期你会看到目录里有 run.py、gru4rec.py、paramfiles/ 这些文件就可以开跑了。用一条命令跑通 GRU4Rec 训练与评估第一步把数据整成三列会话 ID、物品 ID、时间戳格式用 TSV 或 pickled DataFrame默认列名是SessionId、ItemId、Time列名不同就用-ik/-sk/-tk指定。第二步执行这一行 run.py每个参数的含义看下面表格THEANO_FLAGSdevicecuda0 python run.py train.tsv \ -t test.tsv -m 1 5 10 20 -s model.pickle \ -ps lossbpr-max,layers224,batch_size80,n_epochs10,constrained_embeddingTrue,final_actelu-0.5预期你会看到先是逐行SET xxx TO yyy确认参数然后每个 epoch 一行 loss 与 mb/s 吞吐最后输出RecallN和MRRN数值出数就说明训练成功。你真正常调的 5 个参数参数示例值作用lossbpr-max损失函数只推荐 bpr-max 或 cross-entropylayers224GRU 隐层宽度batch_size80批量越大吞吐越快精度可能下降n_epochs10训练轮数5 轮效果也接近constrained_embeddingTrue嵌入与隐层共享通常表现最好final_act必须和 loss 配套cross-entropy 配softmaxbpr-max 配elu-0.5或linear其余参数跑python run.py -h查一下即可。第三步只想复评不想重训时位置参数换成-s保存的 pickle加-l-t指向测试集想直接复用现成参数就把-ps换成-pf paramfiles/retailrocket_bprmax_shared_best.py。GRU4Rec 里你真正会改的几个文件gru4rec.py 管模型本体你改它的时候是在动 GRU 结构或损失逻辑。run.py 管训练评估入口你改它的时候是在加数据列或评估口径。paramfiles/ 存各公开数据集的最佳参数约等于模型的 .env你改它的时候是把这套数字迁到自家数据集。paropt.py 搭配 paramspaces/ 负责 GRU4Rec 超参怎么调你改它的时候是在定义搜索空间并跑 100~200 轮 Optuna。evaluation.py 管并列分数怎么破你改它的时候是在微调 Recall/MRR 的计算方式。GRU4Rec Theano 配置最容易踩的两个坑⚠️ 坑一跑在 CPU 上。错误值devicecpu或不设正确值devicecuda0。为什么代码围绕 GPU 自定义算子构建CPU 不受支持直接报错。走 run.py 时默认值已帮你设好不在 run.py 环境下跑就自己写进THEANO_FLAGS或.theanorc。⚠️ 坑二没禁 cuDNN。错误值不配optimizer_excluding正确值optimizer_excludinglocal_dnn_reduction:local_cudnn_maxandargmax:local_dnn_argmax。为什么cuDNN v7 起cudnnReduceTensor带病多年相关算子又慢又可能算错。同时保持floatXfloat32、modeFAST_RUN仓库里的 theanorc_gru4rec 已把这些全写好照抄即可。下一步跑基线并启动 GRU4Rec 超参调优先用 baselines.py 验证环境能否复现论文数值再用paropt.py在自己数据集上完成一轮完整的参数搜索。【免费下载链接】GRU4RecGRU4Rec is the original Theano implementation of the algorithm in Session-based Recommendations with Recurrent Neural Networks paper, published at ICLR 2016 and its follow-up Recurrent Neural Networks with Top-k Gains for Session-based Recommendations. The code is optimized for execution on the GPU.项目地址: https://gitcode.com/gh_mirrors/gr/GRU4Rec创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表