Mit if-Bedingungen in einem TensorFlow-Diagramm
m Tensorflow CIFAR-Lernprogram im cifar10_inputs.py Zeile 174 Es wird gesagt, dass Sie die Reihenfolge der Operationen random_contrast und random_brightness für eine bessere Datenvergrößerung zufällig anordnen sollten.
Um dies zu tun, zeichne ich zunächst eine Zufallsvariable aus der Gleichverteilung zwischen 0 und 1: p_order. Und TU
if p_order>0.5:
distorted_image=tf.image.random_contrast(image)
distorted_image=tf.image.random_brightness(distorted_image)
else:
distorted_image=tf.image.random_brightness(image)
distorted_image=tf.image.random_contrast(distorted_image)
s gibt jedoch zwei mögliche Optionen, um p_order zu erhalten:
1) Verwenden von Numpy, was mich nicht zufrieden stellt, da ich reines TF wollte, und dass TF seinen Benutzer davon abhält, Numpy und Tensorflow zu mischen
2) Mit TF kann p_order jedoch nur in einer tf.Session () ausgewertet werden. Ich weiß nicht genau, ob ich das tun soll:
with tf.Session() as sess2:
p_order_tensor=tf.random_uniform([1,],0.,1.)
p_order=float(p_order_tensor.eval())
Alle diese Operationen befinden sich im Hauptteil einer Funktion und werden von einem anderen Skript ausgeführt, das eine andere Sitzung / ein anderes Diagramm hat. Oder ich könnte das Diagramm aus dem anderen Skript als Argument an diese Funktion übergeben, aber ich bin verwirrt. Sogar die Tatsache, dass Tensorflow-Funktionen wie diese oder Inferenz zum Beispiel den Graphen global zu definieren scheinen, ohne ihn explizit als Ausgabe zurückzugeben, ist für mich ein bisschen schwer zu verstehen.