code: def jvp(outputs, inputs, grad_inputs=None, **kwargs):
      # Unlike `torch.autograd.functional.jvp`, this function avoids repeating forward computation.
      if torch.is_tensor(inputs):
          inputs = [inputs]
      _dummy_inputs = [
          torch.as_strided(i, (), ()) for i in inputs
      ]  # Workaround for PyTorch bug #39784.  # noqa: 88
  
      if torch.is_tensor(outputs):
          outputs = [outputs]
      outputs = make_seq_requires_grad(outputs)
  
      dummy_outputs = [
          torch.zeros_like(o, requires_grad=True) for o in outputs
      ]
      _vjp = torch.autograd.grad(
          outputs,
          inputs,
          grad_outputs=dummy_outputs,
          create_graph=True,
          allow_unused=True,
      )
      _vjp = make_seq_requires_grad(convert_none_to_zeros(_vjp, inputs))
  
      _jvp = torch.autograd.grad(
          _vjp, dummy_outputs, grad_outputs=grad_inputs, **kwargs
      )
      return convert_none_to_zeros(_jvp, dummy_outputs)
  
file_path: torchsde/torchsde/_core/misc.py
imports: import warnings
  import torch
label_desc: Use image node_id 13 for calling a global function with example usage: jvp(outputs, inputs, grad_inputs) and returns: convert_none_to_zeros