code: def test_gumbel(model_test, data):
      gen = Gen(model_test, data, LogSemiring)
      gen.vals.requires_grad_(True)
      alpha = gen.struct.marginals(gen.vals)
      print(alpha[0])
      print(torch.autograd.grad(alpha, gen.vals, alpha.detach())[0][0])
  
imports: from torch_struct import CKY, CKY_CRF, DepTree, LinearChain, SemiMarkov, Alignment, deptree_nonproj, deptree_part
  from torch_struct import LogSemiring, CheckpointSemiring, CheckpointShardSemiring, KMaxSemiring, SparseMaxSemiring, MaxSemiring, StdSemiring, EntropySemiring
  from .extensions import LinearChainTest, SemiMarkovTest, DepTreeTest, CKYTest, CKY_CRFTest, test_lookup
  import torch
  from hypothesis import given
  from hypothesis.strategies import integers, data, sampled_from
  import pytest
  from hypothesis import settings
label_desc: Use image node_id 13 for calling a global function with example usage: test_gumbel(model_test, data) without return types