2016-07-14 94 views
6

對不起,如果我搞砸了標題,我不知道該怎麼說。無論如何,我有一組值的張量,但我想確保張量中的每個元素的範圍從0到255,(或0 - 1也可以)。然而,我不想讓所有的值加起來像softmax那樣是1或255,我只是想縮小這些值。改變張量流中的張量的尺度

有沒有辦法做到這一點?

謝謝!

回答

11

您正在嘗試規範化數據。一個典型的歸一化公式是這樣的一種:

normalize_value = (value − min_value)/(max_value − min_value) 

上tensorflow實施將看起來像這樣:

tensor = tf.div(
    tf.subtract(
     tensor, 
     tf.reduce_min(tensor) 
    ), 
    tf.subtract(
     tf.reduce_max(tensor), 
     tf.reduce_min(tensor) 
    ) 
) 

所有的張量的值將被betweetn 0和1

重要:確保張量具有float/double值,或者輸出張量只有零和1。如果您首先有一個整數張量:

tensor = tf.to_float(tensor) 
2

sigmoid(tensor) * 255應該這樣做。