Я использую Matplotlib для создания пользовательских графиков встраивания t-SNE в каждую эпоху во время обучения. Я бы хотел, чтобы графики отображались на Tensorboard в формате слайдера, как в примере MNST:
Но вместо этого каждая серия графиков отображается в виде отдельных сводок по эпохам, которые потом будет сложно рассмотреть. Смотрите ниже:
Похоже, что создается несколько сводок изображений с одним и тем же именем, поэтому добавьте суффикс _X
вместо перезаписи или добавления в слайдер, как я хочу. Точно так же, когда я использую параметр family
, изображения группируются по-разному, но все равно добавляются _X
к области суммарного имени.
Это мой код для создания пользовательских графиков и добавления к tf.summary.image
с использованием пользовательских графиков и добавления оцененной сводки к составителю сводок.
def _visualise_embedding(step, summary_writer, features, silhouettes, sample_size=1000):
'''
Visualise features embedding image by adding plot to summary writer to track on Tensorboard
'''
# Select random sample
feats_to_sils = list(zip(features, silhouettes))
shuffle(feats_to_sils)
feats, sils = zip(*feats_to_sils)
feats = feats[:sample_size]
sils = sils[:sample_size]
# Embed feats to 2 dim space
embedded_feats = perform_tsne(2, feats)
# Plot features embedding
im_bytes = plot_embedding(embedded_feats, sils)
# Convert PNG buffer to TF image
image = tf.image.decode_png(im_bytes, channels=4)
# Add the batch dimension
image = tf.expand_dims(image, 0)
summary_op = tf.summary.image("model_projections", image, max_outputs=1, family='family_name')
# Summary has to be evaluated (converted into a string) before adding to the writer
summary_writer.add_summary(summary_op.eval(), step)
Я понимаю, что могу получить нужные мне ползунки, если добавлю метод визуализации в качестве операции на график, чтобы избежать проблемы дублирования имен. Но мне нужно иметь возможность проходить через мои оцененные значения тензора, чтобы выполнить t-SNE для создания вложений ...
Я застрял на этом некоторое время, поэтому любые советы приветствуются!