TensorBoard with multiple inputs

I can’t view the model structure using add_graph().

I have this input to the model (a dictionary of tensors and other inputs):

        grid_size = self.voxel_generator.grid_size
        coords = np.pad(coords, ((0, 0), (1, 0)), mode='constant', constant_values=0)

        voxels = torch.tensor(voxels, dtype=torch.float32, device=self.device)
        coords = torch.tensor(coords, dtype=torch.int32, device=self.device)
        num_points = torch.tensor(num_points, dtype=torch.int32, device=self.device)
        num_voxels = torch.tensor(num_voxels, dtype=torch.int32, device=self.device)

        self.inputs = dict(
            voxels=voxels,
            num_points=num_points,
            num_voxels=num_voxels,
            coordinates=coords,
            shape=[grid_size]
        )
        torch.cuda.synchronize()

        with torch.no_grad():
            outputs = self.net(self.inputs, return_loss=False)[0]

        writer.add_graph(self.net, self.inputs)

I got this error :


 writer.add_graph(self.net, self.inputs)
  File "/usr/local/lib/python3.8/dist-packages/torch/utils/tensorboard/writer.py", line 724, in add_graph
    self._get_file_writer().add_graph(graph(model, input_to_model, verbose))
  File "/usr/local/lib/python3.8/dist-packages/torch/utils/tensorboard/_pytorch_graph.py", line 292, in graph
    raise e
  File "/usr/local/lib/python3.8/dist-packages/torch/utils/tensorboard/_pytorch_graph.py", line 286, in graph
    trace = torch.jit.trace(model, args)
  File "/usr/local/lib/python3.8/dist-packages/torch/jit/_trace.py", line 733, in trace
    return trace_module(
  File "/usr/local/lib/python3.8/dist-packages/torch/jit/_trace.py", line 934, in trace_module
    module._c._create_method_from_trace(
RuntimeError: Tracer cannot infer type of ({'voxels': tensor([[[ 9.3375,  1.9286, -0.1664,  0.0000,  0.0000],
         [ 9.2331,  1.9070,  0.2744,  0.0000,  0.0000],
         [ 9.3912,  1.9055, -0.1673,  0.0000,  0.0000],
         ...,
         [ 9.3165,  1.8972, -1.9016,  0.0000,  0.0000],
         [ 9.2892,  1.8916, -0.0551,  0.0000,  0.0000],
         [ 9.2425,  1.8821,  0.3843,  0.0000,  0.0000]],

        [[ 6.8277,  1.0655, -1.9345,  0.0000,  0.0000],
         [ 6.8314,  1.0417, -1.9345,  0.0000,  0.0000],
         [ 6.8388,  1.0184, -1.9356,  0.0000,  0.0000],
         ...,
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000]],

        [[ 9.4154,  1.0012, -1.8937,  0.0000,  0.0000],
         [ 9.4149,  1.1760, -1.8976,  0.0000,  0.0000],
         [ 9.4229,  1.1436, -1.8984,  0.0000,  0.0000],
         ...,
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000]],

        ...,

        [[10.5405,  1.6167, -1.6590,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         ...,
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000]],

        [[13.8343,  1.4345,  0.5666,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         ...,
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000]],

        [[15.3778,  1.4861, -0.4496,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         ...,
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000]]], device='cuda:0'), 'num_points': tensor([20, 12,  7,  ...,  1,  1,  1], device='cuda:0', dtype=torch.int32), 'num_voxels': tensor([12408], device='cuda:0', dtype=torch.int32), 'coordinates': tensor([[  0,   0, 265, 302],
        [  0,   0, 261, 290],
        [  0,   0, 261, 303],
        ...,
        [  0,   0, 264, 308],
        [  0,   0, 263, 325],
        [  0,   0, 263, 332]], device='cuda:0', dtype=torch.int32), 'shape': [array([512, 512,   1])]},)
:Could not infer type of list element: Only tensors and (possibly nested) tuples of tensors, lists, or dictsare supported as inputs or outputs of traced functions, but instead got value of type ndarray.