簡體   English   中英

Tensorboard圖像摘要

[英]Tensorboard Image Summaries

我在訓練期間使用Matplotlib在每個時期創建自定義t-SNE嵌入圖。 我希望這些圖以滑塊格式顯示在Tensorboard上,就像這個MNST示例:

滑塊圖片示例

但相反,每批圖表顯示為每個時期的單獨摘要,這在以后很難查看。 見下文:

多個不同的圖像摘要

它似乎是創建具有相同名稱的多個圖像摘要,因此附加_X后綴而不是覆蓋或添加到我想要的滑塊。 類似地,當我使用family param時,圖像的分組不同,但仍然將_X附加到摘要名稱范圍。

分組不同的圖像摘要

這是我創建自定義繪圖並使用自定義繪圖添加到tf.summary.image代碼,並將評估的摘要添加到摘要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來創建嵌入...

我已經堅持了一段時間,所以任何建議都表示贊賞!

這可以通過使用tf.Summary.Image()來實現

例如:

    im_summary = tf.Summary.Image(encoded_image_string=im_bytes)
    im_summary_value = [tf.Summary.Value(tag=self.confusion_matrix_tensor_name, 
    image=im_summary)]

這是一個summary.proto方法,所以一開始我很明顯,因為方法定義不能通過Tensorflow訪問。 當我發現它在github上使用它的代碼片段時,我才意識到它的功能。

無論哪種方式,它都像我想要的那樣在Tensorboard上將圖像摘要公開為幻燈片。 💪

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM