首页 > 解决方案 > Google WALS Trainer Division by Zero?

问题描述

我正在使用“在 TensorFlow 中构建推荐系统:概述”中的 Google 代码,并且在运行他们的 WALS 算法实现时,我收到了这个错误:

RuntimeWarning:除以零时遇到除 frac = np.array(1.0/(data > 0.0).sum(axis))

这可以在代码第 94 行的上下文中看到:Google 的 Github WALS 算法

奇怪的是,我并不总是得到这个错误。我使用的数据集只会随着时间的推移而变大,所以我不相信这种情况会发生,因为没有足够的数据。我很确定这行代码的意思是说如果数字大于零,则计算倒数,但如果为零,则将其保留为零,但在“将零保留为零的情况”中无法按预期工作。如果这个声明没有这样做,有人可以告诉我为什么data > 0.0不够以及如何改变它吗?(注意数据是一个矩阵)

标签: pythontensorflow

解决方案


我们可以使用 np errstate 来忽略除以零错误

与 np.errstate(divide='ignore'): frac = np.array(1.0/(data).sum(axis))


推荐阅读