因此,我正在使用Spotlight(一个基于PyTorch的推荐系统库),并尝试使用训练数据构建一组序列。Spotlight在创建这些序列时所做的内部检查之一是确保项目id都是非零的,因为在序列中零被用作填充值
我知道我的输入数据中没有零(它是从一个文件中读取的,我已经确定这个文件中没有零),但是出于某种原因,Spotlight中的检查表明在item ID列表中有一个零
更奇怪的是,当我尝试这样做时会发生什么:
for id in interactions.item_ids:
if id == 0:
print("there is a zero ID")
# This is how Spotlight checks
if 0 in interactions.item_ids:
print("there is a zero")
只有第二部分打印任何输出。第一个似乎检测不到任何零
这让我很困惑。为了澄清,item id是int64
的NumPy数组。前10个条目看起来是这样的(我可以提供一个包含67000个左右条目的文件,所以你们可以检查我是否愚蠢,并且确实没有零):
1339
1129
1953
1343
1061
1287
1405
31
3671
1293
谢谢你的帮助
结果,当我试图解决一个MCVE时,我解决了这个问题!显式执行
np.array(interactions.item_ids)
修复了这个问题相关问题 更多 >
编程相关推荐