จะแสดงรูปภาพมากกว่า 10 ภาพใน Tensorboard ได้อย่างไร

ฉันสังเกตเห็นว่าไม่สำคัญว่าฉันจะบันทึกรูปภาพลงในไฟล์บันทึกเทนเซอร์บอร์ดได้กี่ภาพ แต่เทนเซอร์บอร์ดจะแสดงเพียง 10 รูปเท่านั้น (ต่อแท็ก)

เราจะเพิ่มจำนวนภาพได้อย่างไรหรืออย่างน้อยก็เลือกว่าจะให้ภาพไหนแสดง?


หากต้องการทำซ้ำสิ่งที่ฉันหมายถึงให้รันตาม MCVE:

import torch
from torch.utils.tensorboard import SummaryWriter
tb = SummaryWriter(comment="test")

for k in range(100):
    # create an image with some funny pattern
    b = [n for (n, c) in enumerate(bin(k)) if c == '1']
    img = torch.zeros((1,10,10))
    img[0, b, :] = 0.5
    img =img + img.permute([0, 2, 1])

    # add the image to the tensorboard file
    tb.add_image(tag="test", img_tensor=img, global_step=k)

ซึ่งจะสร้างโฟลเดอร์ runs ไว้สำหรับบันทึกข้อมูล จากโฟลเดอร์เดียวกันให้รัน tensorboard --logdir runs เปิดเบราว์เซอร์แล้วไปที่ localhost:6006 (หรือแทนที่ 6006 ด้วยพอร์ตเทนเซอร์บอร์ดใดก็ตามที่จะแสดงหลังจากสตาร์ท) จากนั้นไปที่แท็บชื่อ "รูปภาพ" แล้วเลื่อนแถบเลื่อนไปเหนือรูปภาพระดับสีเทา

ในกรณีของฉันมันแสดงเฉพาะรูปภาพจากขั้นตอนต่างๆ

k = 3, 20, 24, 32, 37, 49, 52, 53, 67, 78

ซึ่งไม่ใช่ระยะห่างที่ดีนัก แต่ดูค่อนข้างสุ่ม ฉันอยากจะมี

  1. ดูภาพที่ฉันบันทึกไว้มากกว่า 10 ภาพ และ
  2. มีระยะห่างระหว่างจำนวนขั้นตอนระหว่างแต่ละภาพที่แสดงมากขึ้น

ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร?

แก้ไข: ฉันเพิ่งพบตัวเลือก --samples_per_plugin และลอง tensorboard --logdir runs --samples_per_plugin "images=100" นี่เป็นการเพิ่มจำนวนรูปภาพจริงๆ แต่แสดงเฉพาะรูปภาพจากขั้นตอน k = 0,1,2,3....,78 เท่านั้น แต่ไม่มีการแสดงจากด้านบน 78


person flawr    schedule 27.08.2019    source แหล่งที่มา
comment
อาจไม่เกี่ยวข้องกัน แต่ตามเอกสารประกอบ คุณควรส่ง dataformats="CHW" เนื่องจากข้อมูลของคุณมีช่องทางเดียว   -  person Szymon Maszke    schedule 27.08.2019
comment
@SzymonMaszke จริงๆ แล้วไม่จำเป็นเพราะ dataformats="CHW" โดยค่าเริ่มต้น โปรดดูที่ เอกสาร   -  person flawr    schedule 27.08.2019


คำตอบ (1)


คุณอาจต้องรออีกสักหน่อยเพื่อรอโหลดข้อมูลทั้งหมด แต่นี่เป็นวิธีแก้ปัญหาที่ถูกต้องจริงๆ ดู --help:

--samples_per_plugin: รายการเสริมที่คั่นด้วยเครื่องหมายจุลภาคของคู่ Plugin_name=num_samples เพื่อระบุจำนวนตัวอย่างที่จะเก็บต่อแท็กสำหรับปลั๊กอินนั้นอย่างชัดเจน สำหรับปลั๊กอินที่ไม่ได้ระบุ TensorBoard จะสุ่มสุ่มลดตัวอย่างสรุปที่บันทึกไว้ให้เป็นค่าที่สมเหตุสมผล เพื่อป้องกันข้อผิดพลาดหน่วยความจำไม่เพียงพอสำหรับงานที่ใช้เวลานาน แฟล็กนี้ช่วยให้สามารถควบคุมการสุ่มตัวอย่างนั้นได้อย่างละเอียด โปรดทราบว่า 0 หมายถึงเก็บตัวอย่างประเภทนั้นทั้งหมด ตัวอย่างเช่น "สเกลาร์=500,รูปภาพ=0" จะเก็บสเกลาร์ไว้ 500 รูปและรูปภาพทั้งหมด ผู้ใช้ส่วนใหญ่ไม่จำเป็นต้องตั้งค่าสถานะนี้ (ค่าเริ่มต้น: '')

เกี่ยวกับตัวอย่างแบบสุ่ม: นี่เป็นเรื่องจริงเช่นกัน มีการสุ่มบางประเภทจาก คำถามที่พบบ่อย:

ข้อมูลของฉันถูกสุ่มตัวอย่างหรือไม่ ฉันเห็นข้อมูลทั้งหมดจริงๆ หรือไม่

TensorBoard ใช้การสุ่มตัวอย่างจากแหล่งเก็บข้อมูลเพื่อลดขนาดข้อมูลของคุณเพื่อให้สามารถโหลดลงใน RAM ได้ คุณสามารถแก้ไขจำนวนองค์ประกอบที่จะเก็บไว้ต่อแท็กใน tensorboard/backend/application.py

person flawr    schedule 18.12.2019