2016-07-14 144 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应该这样做。