Ich arbeite an einem Textklassifikationsproblem. Ich habe 3M + Reihen, die in 20 Kategorien eingeteilt werden müssen.Tensorboard Einbettung Visualisierung
Im Folgenden sind zwei Code-Schnipsel aus meinem gesamten Code:
Dies ist der Code, wo meine tf Variablen definiert sind .:
class TextCNNRNN(object):
def __init__(self, embedding_mat, non_static, hidden_unit, sequence_length, max_pool_size,
num_classes, embedding_size, filter_sizes, num_filters, l2_reg_lambda=0.0):
self.input_x = tf.placeholder(tf.int32, [None, sequence_length], name='input_x')
self.input_y = tf.placeholder(tf.float32, [None, num_classes], name='input_y')
self.dropout_keep_prob = tf.placeholder(tf.float32, name='dropout_keep_prob')
self.batch_size = tf.placeholder(tf.int32, [])
self.pad = tf.placeholder(tf.float32, [None, 1, embedding_size, 1], name='pad')
self.real_len = tf.placeholder(tf.int32, [None], name='real_len')
l2_loss = tf.constant(0.0)
with tf.device('/cpu:0'), tf.name_scope('embedding'):
self.emb_var = tf.Variable(embedding_mat, name='emb_var')
# if not non_static:
# self.emb_var = tf.constant(embedding_mat, name='enb_var')
# else:
# self.emb_var = tf.Variable(embedding_mat, name='emb_var')
self.embedded_chars = tf.nn.embedding_lookup(self.emb_var, self.input_x)
self.emb = tf.expand_dims(self.embedded_chars, -1)
Der Tensor Ich mag würde, ist embedded_chars sichtbar zu machen.
Und dies ist der Code, in dem I-Eingang an den Projektor api gegeben ist:
config = projector.ProjectorConfig()
config.model_checkpoint_path = checkpoint_prefix + str(best_at_step) +'.ckpt'
embedding = config.embeddings.add()
embedding.tensor_name = cnn_rnn.embedded_chars.name
#embedding.metadata_path = 'metadata.tsv'
emb_writer = tf.summary.FileWriter(metadata_path,sess.graph)
projector.visualize_embeddings(emb_writer, config)
Meine Erwartung: Ich mag meine ausgebildeten Eingangsdaten sehen und wie seine klassifiziert werden.
Tatsächliches Ergebnis: Wenn ich Embedded_chars Tensor als Eingabe für den Projektor verwende, Lasten feststellen. Wenn ich jedoch emb_var verwende, sehe ich, dass die Einbettungen geladen werden. Das Problem ist, dass emb_var nur mein Vokabular ist, aber ich muss meinen tatsächlichen Datensatz sehen.
Es gibt also ein Problem beim Übergeben von 'embedded_chars' (sind die Formen anders? Gibt es einen Fehler?). Aber es sieht so aus, als würden Sie nicht nur die Einbettungen für die Trainingsdaten visualisieren, was eher eine Feature-Anforderung als eine StackOverflow-Frage ist. –
Wie kann ich verstehen, dass Einbettungen erlernte Tensoren projizieren können? Nein ? – MLNINJA