code: def test_embedding_dict_watch(relay_server, wandb_init):
      pytest.importorskip("torch")
      with relay_server() as relay:
          run = wandb_init()
          model = EmbModelWrapper()
          run.watch(model, log_freq=1, idx=0)
          opt = torch.optim.Adam(params=model.parameters())
          inp = torch.randint(16, [8, 5])
          out = model(inp)
          out = (out["key"]["emb1"]).sum(-1)
          loss = F.mse_loss(out, inp.float())
          loss.backward()
          opt.step()
          run.log({"loss": loss})
          run.finish()
  
      history = relay.context.get_run_history(run.id)
      assert len(history["gradients/emb.emb1.weight"][0]["bins"]) == 65
      assert (
          history["gradients/emb.emb1.weight"][0]["_type"]
          == "histogram"
      )
  
imports: import pytest
  import wandb
label_desc: Use image node_id 5 for calling a global function with example usage: test_embedding_dict_watch(relay_server, wandb_init) without return types