python - 如何防止被零除或替换 Theano 中的无限值?

标签 python numpy nan divide-by-zero theano

我在 Theano 中使用一个成本函数,它涉及一个正则项,需要我计算这个项:

T.sum(c / self.squared_euclidean_distances)

由于 self.squared_euclidean_distances 的某些值可能为零,因此会产生 Nan 值。我该如何解决这个问题?我尝试使用 T.isinf 但没有成功。一种解决方案是将 self.squared_euclidean_distances 中的零删除为一个小数或将 T.sum(c/self.squared_euclidean_distances) 中的无限数替换为零。我只是不知道如何在 Theano 中替换这些值。

最佳答案

看看T.switch .例如,你可以这样做

T.switch(T.eq(self.squared_euclidean_distances, 0), 0, c / self.squared_euclidean_distances)

(或者,在上游,您确保永远不会使用平方欧氏距离将向量与自身进行比较。)

关于python - 如何防止被零除或替换 Theano 中的无限值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26621341/

相关文章:

Python 服务器名称错误 : global name 'SocketError' is not defined

python - 值错误: setting an array element with a sequence while training KD TRee on TFIDF

python - Pandas lambda 函数无法识别 NaN

python - 如何将具有相同索引的多行组合在一起,并且每一行在pandas中只有一个真实值?

python - Tkinter 在尝试关闭时拆分菜单和主窗口

python - 向量化投资组合风险

arrays - python : append to numpy array

python - 使用 numpy 填充数组

Python NaN 的集合和唯一性

python urllib2.openurl 不适用于特定 URL(重定向)?