因此,我正在使用Spotlight(基于PyTorch的推荐系统库),我正在尝试使用训练数据构建一组序列。创建这些序列时Spotlight进行的内部检查之一是确保项目ID都非零,因为零被用作序列中的填充值。
我知道我的输入数据中没有零(正在从我确保没有零的文件中读取),但是由于某些原因,Spotlight中的检查表明存在 商品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")
仅 second 部分显示任何输出。第一个似乎没有检测到任何零。
这让我很困惑。需要说明的是,商品ID是int64
的NumPy数组。前十个条目看起来像这样(我可以提供一个包含全部67000左右的文件,所以你们可以检查我不是很傻,并且确实没有零):
1339
1129
1953
1343
1061
1287
1405
31
3671
1293
感谢您的帮助。
答案 0 :(得分:0)
事实证明,当我尝试整理MCVE时,我已解决了该问题!明确进行np.array(interactions.item_ids)
可解决此问题。