tensorflow 将数值限制在一定范围内

源式羽语 2020-06-05

在使用tf.log时,如果输入为0.则loss为nan

这时使用 tf.clip_by_value(1-y,1e-10,1.0)将一个张量中的数值限制在一个范围之内。(可以避免一些运算错误:可以保证在进行log运算时,不会出现log0这样的错误或者大于1的概率)

tf.clip_by_value(1-y,1e-10,1.0)

参数:(1)1-y:input数据(2)1e-10、1.0是对数据的限制。
当1-y小于1e-10时,输出1e-10;
当1-y大于1e-10小于1.0时,输出原值;
当1-y大于1.0时,输出1.0;

比如tf.log(tf.clip_by_value(tf.sigmoid(self.scores),1e-8,1.0)

相关推荐