J'essaie de visualiser un résumé du tenseur dans tensorboard. Cependant, je ne vois pas du tout le résumé du tenseur dans le tableau. Voici mon code:
out = tf.strided_slice(logits, begin=[self.args.uttWindowSize-1, 0], end=[-self.args.uttWindowSize+1, self.args.numClasses],
strides=[1, 1], name='softmax_truncated')
tf.summary.tensor_summary('softmax_input', out)
où out est un tenseur multidimensionnel. Je suppose qu'il doit y avoir quelque chose qui ne va pas avec mon code. J'ai probablement utilisé la fonction tensor_summary
de manière incorrecte.
Ce que vous faites est de créer une opération de synthèse, mais vous ne l'invoquez pas et n'écrivez pas le résumé (voir documentation ) . Pour créer réellement un résumé, vous devez procéder comme suit:
# Create a summary operation
summary_op = tf.summary.tensor_summary('softmax_input', out)
# Create the summary
summary_str = sess.run(summary_op)
# Create a summary writer
writer = tf.train.SummaryWriter(...)
# Write the summary
writer.add_summary(summary_str)
Écrire explicitement un résumé (les deux dernières lignes) n’est nécessaire que si vous n’avez pas d’aide de niveau supérieur comme un Supervisor . Sinon, vous invoquez
sv.summary_computed(sess, summary_str)
et le superviseur s'en occupera.
Plus d'infos, voir aussi: Comment créer manuellement un tf.Summary ()
Je ne suis pas sûr que ce soit évident, mais vous pouvez utiliser quelque chose comme:
def make_tensor_summary(tensor, name='defaultTensorName'):
for i in range(tensor.get_shape()[0]:
for j in range(tensor.get_shape()[1]:
tf.summary.scalar(Name + str(i) + '_' + str(j), tensor[i, j])
au cas où vous sachiez qu'il s'agit d'un tenseur «en forme de matrice» à l'avance.
J'espère une solution de contournement qui réalise ce que vous voulez. ..
Si vous souhaitez afficher les valeurs de tenseur, vous pouvez les convertir à l'aide de as_string, puis utilisez summary.text. Les valeurs apparaîtront dans l'onglet texte du tensorboard.
Pas essayé avec les tenseurs 3D, mais n'hésitez pas à couper en fonction des besoins.
extrait de code, qui inclut l’utilisation de l’insertion d’une instruction print pour obtenir également une sortie de la console.
predictions = tf.argmax(reshaped_logits, 1)
txtPredictions = tf.Print(tf.as_string(predictions),[tf.as_string(predictions)], message='predictions', name='txtPredictions')
txtPredictions_op = tf.summary.text('predictions', txtPredictions)