MCPcopy Create free account
hub / github.com/ChenHsing/SVFormer / run_visualization

Function run_visualization

tools/visualization.py:28–186  ·  view source on GitHub ↗

Run model visualization (weights, activations and model inputs) and visualize them on Tensorboard. Args: vis_loader (loader): video visualization loader. model (model): the video model to visualize. cfg (CfgNode): configs. Details can be found in slow

(vis_loader, model, cfg, writer=None)

Source from the content-addressed store, hash-verified

26
27
28def run_visualization(vis_loader, model, cfg, writer=None):
29 """
30 Run model visualization (weights, activations and model inputs) and visualize
31 them on Tensorboard.
32 Args:
33 vis_loader (loader): video visualization loader.
34 model (model): the video model to visualize.
35 cfg (CfgNode): configs. Details can be found in
36 slowfast/config/defaults.py
37 writer (TensorboardWriter, optional): TensorboardWriter object
38 to writer Tensorboard log.
39 """
40 n_devices = cfg.NUM_GPUS * cfg.NUM_SHARDS
41 prefix = "module/" if n_devices > 1 else ""
42 # Get a list of selected layer names and indexing.
43 layer_ls, indexing_dict = process_layer_index_data(
44 cfg.TENSORBOARD.MODEL_VIS.LAYER_LIST, layer_name_prefix=prefix
45 )
46 logger.info("Start Model Visualization.")
47 # Register hooks for activations.
48 model_vis = GetWeightAndActivation(model, layer_ls)
49
50 if writer is not None and cfg.TENSORBOARD.MODEL_VIS.MODEL_WEIGHTS:
51 layer_weights = model_vis.get_weights()
52 writer.plot_weights_and_activations(
53 layer_weights, tag="Layer Weights/", heat_map=False
54 )
55
56 video_vis = VideoVisualizer(
57 cfg.MODEL.NUM_CLASSES,
58 cfg.TENSORBOARD.CLASS_NAMES_PATH,
59 cfg.TENSORBOARD.MODEL_VIS.TOPK_PREDS,
60 cfg.TENSORBOARD.MODEL_VIS.COLORMAP,
61 )
62 if n_devices > 1:
63 grad_cam_layer_ls = [
64 "module/" + layer
65 for layer in cfg.TENSORBOARD.MODEL_VIS.GRAD_CAM.LAYER_LIST
66 ]
67 else:
68 grad_cam_layer_ls = cfg.TENSORBOARD.MODEL_VIS.GRAD_CAM.LAYER_LIST
69
70 if cfg.TENSORBOARD.MODEL_VIS.GRAD_CAM.ENABLE:
71 gradcam = GradCAM(
72 model,
73 target_layers=grad_cam_layer_ls,
74 data_mean=cfg.DATA.MEAN,
75 data_std=cfg.DATA.STD,
76 colormap=cfg.TENSORBOARD.MODEL_VIS.GRAD_CAM.COLORMAP,
77 )
78 logger.info("Finish drawing weights.")
79 global_idx = -1
80 for inputs, labels, _, meta in tqdm.tqdm(vis_loader):
81 if cfg.NUM_GPUS:
82 # Transfer the data to the current GPU device.
83 if isinstance(inputs, (list,)):
84 for i in range(len(inputs)):
85 inputs[i] = inputs[i].cuda(non_blocking=True)

Callers 1

visualizeFunction · 0.85

Calls 6

get_weightsMethod · 0.95
get_activationsMethod · 0.95
process_layer_index_dataFunction · 0.90
add_videoMethod · 0.80

Tested by

no test coverage detected