code: def test_all_logging(relay_server, wandb_init):
      pytest.importorskip("torch")
      n = 3
      with relay_server() as relay:
          run = wandb_init()
          net = ConvNet()
          run.watch(
              net,
              log="all",
              log_freq=1,
          )
          for _ in range(n):
              output = net(
                  dummy_torch_tensor(
                      (32, 1, 28, 28),
                  )
              )
              grads = torch.ones(32, 10)
              output.backward(grads)
              run.log({"a": 2})
          run.finish()
  
      history = relay.context.get_run_history(
          run.id, include_private=True
      )
      assert history.shape == (
          n,
          21,
      )  # it's 21 instead of 20 since we add __run_id
      assert history["_step"].to_list() == [i for i in range(3)]
      for i in range(n):
          assert len(history["parameters/fc2.bias"][i]["bins"]) == 65
          assert len(history["gradients/fc2.bias"][i]["bins"]) == 65
  
imports: import pytest
  import wandb
label_desc: Use image node_id 4 for calling a global function with example usage: test_all_logging(relay_server, wandb_init) without return types