In meinem TensorFlow-Code habe ich einige Parameter mit einer Logik in meinem Graphen verbunden, aber die entsprechende TensorBoard-Visualisierung kann diese Verbindungen nicht direkt herstellen und zeigt stattdessen nur die Verbindungen zwischen den enthaltenen Bereichen an.Wie stelle ich sicher, dass Verbindungen zwischen meinen Grafikelementen in TensorBoard dargestellt werden?
Insbesondere, ich habe
with tf.name_scope('params_structure'):
is_train = tf.placeholder(tf.bool, [], name='is_train')
keep_prob_later_param = tf.identity(FLAGS.keep_prob_later, name='keep_prob_later')
keep_prob_early_param = tf.identity(FLAGS.keep_prob_early, name='keep_prob_early')
keep_prob_input_param = tf.identity(FLAGS.keep_prob_input, name='keep_prob_input')
with tf.name_scope('structure_logic'):
# Note that the summaries for these variables are the values used in training; not for computing stats
with tf.name_scope('keep_prob_later_decay'):
keep_prob_later_decay = tf.sub(1.0, tf.train.exponential_decay(1 - keep_prob_later_param, global_step,
FLAGS.decay_steps,
FLAGS.dropout_decay_rate, staircase=False))
with tf.name_scope('keep_prob_early_decay'):
keep_prob_early_decay = tf.sub(1.0, tf.train.exponential_decay(1 - keep_prob_early_param, global_step,
FLAGS.decay_steps,
FLAGS.dropout_decay_rate, staircase=False))
with tf.name_scope('keep_prob_input_decay'):
keep_prob_input_decay = tf.sub(1.0, tf.train.exponential_decay(1 - keep_prob_input_param, global_step,
FLAGS.decay_steps,
FLAGS.dropout_decay_rate, staircase=False))
with tf.name_scope('keep_prob_all'):
keep_prob_all = tf.identity(1.0)
keep_prob_later = tf.cond(is_train, lambda: keep_prob_later_decay, lambda: keep_prob_all)
keep_prob_early = tf.cond(is_train, lambda: keep_prob_early_decay, lambda: keep_prob_all)
keep_prob_input = tf.cond(is_train, lambda: keep_prob_input_decay, lambda: keep_prob_all)
In meiner TensorBoard Visualisierung ich alle diese Elemente zu sehen, wie erwartet, aber die Verbindungen zwischen den keep_prob_..._param
s und die entsprechenden keep_prob_..._decay
Operationen werden nicht hergestellt. Stattdessen erhalte ich nur die Verbindungen zwischen den enthaltenden Bereiche als Gruppe (zB von params_structure
wie unten hervorgehoben, um alle der keep_prob_..._decay
Operationen):
Das gleiche gilt für die Verbindung von is_train
in die bedingte operations: nur der gesamte enthaltende Bereich (oben hervorgehoben) ist verbunden.
Wie stelle ich sicher, dass meine Verbindungen zu meinen Diagrammelemente, und nicht nur ihre einschließenden Bereiche werden in TensorBoard vertreten?
Beachten Sie, dass dies nicht nur eine Frage der Zwang Vollständigkeit: wie es steht, die TensorBoard Darstellung nicht vollständig, welche der params_structure
Elemente zu etablieren verbinden, welche der structure_logic
Elemente: es jeden sein könnte, alle oder gar keiner von ihnen!
Nun ja, technisch "vertreten" in der Tat; aber (wie die Richtung - sehen, was ich dort gemacht habe? - [Karten haben genommen] (http://qz.com/681745/no-its-not-you-google-maps-really-did-get-crappy/)) Nicht in einer Weise, die den Menschen viel hilft. Aber dann wird es nicht um uns Menschen gehen, oder? – orome