在使用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)