我在 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/