Skip to content

Commit 6dd1083

Browse files
authored
Tensorboard model visualization bug fix (#2758)
This fix should allow for visualizing YOLOv5 model graphs correctly in Tensorboard by uncommenting line 335 in train.py: ```python if tb_writer: tb_writer.add_graph(torch.jit.trace(model, imgs, strict=False), []) # add model graph ``` The problem was that the detect() layer checks the input size to adapt the grid if required, and tracing does not seem to like this shape check (even if the shape is fine and no grid recomputation is required). The following will warn: https://github.com/ultralytics/yolov5/blob/0cae7576a9241110157cd154fc2237e703c2719e/train.py#L335 Solution is below. This is a YOLOv5s model displayed in TensorBoard. You can see the Detect() layer merging the 3 layers into a single output for example, and everything appears to work and visualize correctly. ```python tb_writer.add_graph(torch.jit.trace(model, imgs, strict=False), []) ``` <img width="893" alt="Screenshot 2021-04-11 at 01 10 09" src="https://user-images.githubusercontent.com/26833433/114286928-349bd600-9a63-11eb-941f-7139ee6cd602.png">
1 parent 0cae757 commit 6dd1083

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

train.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ def train(hyp, opt, device, tb_writer=None):
332332
Thread(target=plot_images, args=(imgs, targets, paths, f), daemon=True).start()
333333
# if tb_writer:
334334
# tb_writer.add_image(f, result, dataformats='HWC', global_step=epoch)
335-
# tb_writer.add_graph(model, imgs) # add model to tensorboard
335+
# tb_writer.add_graph(torch.jit.trace(model, imgs, strict=False), []) # add model graph
336336
elif plots and ni == 10 and wandb_logger.wandb:
337337
wandb_logger.log({"Mosaics": [wandb_logger.wandb.Image(str(x), caption=x.name) for x in
338338
save_dir.glob('train*.jpg') if x.exists()]})

0 commit comments

Comments
 (0)