Ich möchte eine Maske auf jede Eingabe-Funktion in Tensorflow anwenden. Dies ist sehr einfach zu tun, wenn die Maske fest ist - definieren und anwenden Sie sie einfach in der Grafik. Der Haken ist, ich möchte, dass die Maske während des Trainings variiert wird - es wird für jeden Trainingsschritt etwas anders sein. Tatsächlich habe ich für jeden Schritt eine Funktion, die bei jedem Schritt ein numpiges Array zurückgibt, das die Maske darstellt.Maske Tensorflow Eingabedaten
Nach viel Versuch und Irrtum und Suche, habe ich keine Möglichkeit gefunden, diese Maske anzuwenden - soweit es mich betrifft, ist es unmöglich zu tun, durch die Eigenschaften von Tensorflow angewiesen, um alle Eigenschaften der Berechnung wann zu beheben Der Graph ist gebaut.
Allerdings bin ich ziemlich neu zu Tensorflow, so ist es sehr möglich, dass dies möglich ist, und sogar einfach. Kann mir jemand helfen?
Der Pseudo-Code wäre:
build graph with mask as placeholder
Loop over training steps
numpy_array = my_func(step_number)
mask_placeholder = something(numpy_array)*
Session.run([my graph(mask_placeholder)])*
Die Sterne sind, wo ich nicht weiß, was zu tun ist.
Ich bin nicht sicher, dass dies den Trick tun wird.Lassen Sie mich ein konkretes Beispiel geben. Angenommen, meine Features sind Vektoren mit einer Länge von 100.000. Ich trainiere mit 100.000 Schritten. Bei jedem Schritt möchte ich das Eingabemerkmal mit einem Maskenvektor aus Einsen und Nullen maskieren, wobei die Anzahl der Einsen nur die Trainingsschrittnummer ist. Der Graph muss diese Nummer irgendwie kennen und bei jedem Schritt eine neue Maske erstellen. Beachten Sie, dass die benötigte Anzahl nicht aus dem Eingabedatensatz selbst ermittelt werden kann. –
Ich habe sie nie benutzt, aber es scheint, dass Sie den Trainingsschritt von einer der [Training Utility] (https://www.tensorflow.org/versions/master/api_guides/python/train#Training_Utilities) Funktionen bekommen können - - tf.train.get_global_step oder tf.train.global_step. Dies plus die Graphiklogik und etwas cleveres Python können Ihr Problem lösen. –