2016-07-14 9 views
6

Sorry, wenn ich den Titel vermasselt habe, wusste ich nicht, wie man das ausdrückt. Wie auch immer, ich habe einen Tensor einer Reihe von Werten, aber ich möchte sicherstellen, dass jedes Element im Tensor einen Bereich von 0 - 255 hat (oder 0 - 1 funktioniert auch). Ich möchte jedoch nicht alle Werte wie Softmax zu 1 oder 255 addieren, ich möchte nur die Werte herunterskalieren.Ändern der Skala eines Tensors in Tensorflow

Gibt es eine Möglichkeit, dies zu tun?

Danke!

Antwort

11

Sie versuchen, die Daten zu normalisieren. Eine klassische Normalisierungsformel ist diese:

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

Die Implementierung kann auf tensorflow wird wie folgt aussehen:

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

Alle Werte des Tensor 0 wird betweetn und 1.

WICHTIG: Stellen Sie sicher, dass der Tensor Float/Double-Werte hat, oder dass der Ausgangstensor nur Nullen und Einsen hat. Wenn Sie einen Integer-Tensor haben, rufen Sie diesen zuerst an:

2

sigmoid(tensor) * 255 sollte es tun.