RecBole
RecBole copied to clipboard
LR/FM/DeepFM这几个模型运用ml-100k跑Recall, MRR,NDCG,Hit,Precision评价指标报错了
问题如题,我讲述一下我的运营流程:
-
在终端中运行:python run_recbole.py --model=WideDeep --dateset = ml-100k --config_files=test_ml.yaml
batch_user_num = positive_u[-1] + 1 TypeError: 'NoneType' object is not subscriptable
-
其中test_ml.yaml文件的内容如下:
新手入门:https://blog.csdn.net/Turinger_2000/article/details/111493291
evalution settings
eval_setting: TO_LS,full #对数据按时间排序,设置留一法划分数据集,并使用全排序 metrics: ["Recall", "MRR","NDCG","Hit","Precision"] #评测标准 valid_metric: MRR@10 #选取哪个评测标准作为作为提前停止训练的标准 eval_batch_size: 4096 #评测的batch_size
我猜测是否是因为ContextRecommender基础类与Recall, MRR,NDCG,Hit,Precision这几个评价指标不兼容。我运行din、dien上没有遇到这个问题
同样遇到了这个错误
您好,
您在运行RecBole时遇到的错误似乎与batch_user_num
的计算有关,具体是batch_user_num = positive_u[-1] + 1
这一行。错误消息表明'NoneType'对象不可订阅。
以下是一些诊断和可能解决问题的步骤:
-
检查数据加载:
- 确保您的数据集(
ml-100k
)正确加载并包含有效的用户-项目互动。 - 验证您的
test_ml.yaml
配置文件中指定的数据路径指向正确的位置。
- 确保您的数据集(
-
检查
positive_u
:- 错误发生在尝试访问
positive_u
的索引时,positive_u
似乎是一个列表或数组。 - 检查
positive_u
是否正确初始化并包含有效数据。它应该是正用户索引的列表。
- 错误发生在尝试访问
-
调试计算:
- 检查定义
positive_u
的上下文以及它如何用于计算batch_user_num
。 - 确保
positive_u
不是None
且具有有效值。
- 检查定义
-
查看
run_recbole.py
脚本:- 仔细检查您用来运行RecBole的命令:
python run_recbole.py --model=WideDeep --dateset=ml-100k --config_files=test_ml.yaml
。 - 确保没有拼写错误或遗漏的参数。
- 仔细检查您用来运行RecBole的命令:
如果您继续面临问题,考虑提供更多上下文或分享额外的代码片段以便进一步调查。此外,检查RecBole文档或社区资源,了解与此错误相关的任何特定故障排除步骤,以下的文档链接可以进行参考。
- 评估 | RecBole
- 培训与评估介绍 — RecBole 1.2.0 文档
- [问题] 使用大型评估批量大小加速评估 #1556 - GitHub
- https://github.com/github/codeql/issues/8712
- https://blog.csdn.net/qq_41595149/article/details/119249132
- https://stackoverflow.com/questions/65606514/i-have-an-error-with-my-jsconfig-json-in
- https://ithelp.ithome.com.tw/articles/10227493
- https://github.com/libp2p/js-libp2p/issues/1273