code: def __init__(self, radius=0.2, gravity=9.8, adjoint=False):
      super().__init__()
      self.gravity = nn.Parameter(torch.as_tensor([gravity]))
      self.log_radius = nn.Parameter(
          torch.log(torch.as_tensor([radius]))
      )
      self.t0 = nn.Parameter(torch.tensor([0.0]))
      self.init_pos = nn.Parameter(torch.tensor([10.0]))
      self.init_vel = nn.Parameter(torch.tensor([0.0]))
      self.absorption = nn.Parameter(torch.tensor([0.2]))
      self.odeint = odeint_adjoint if adjoint else odeint
  
file_path: torchdiffeq/examples/bouncing_ball.py
imports: import argparse
  import matplotlib.pyplot
  import torch
  import torch.nn
  from torchdiffeq import odeint, odeint_adjoint
  from torchdiffeq import odeint_event
label_desc: Use image node_id 1 to create a new BouncingBallExample object from inherited base classes: nn with example: obj = BouncingBallExample(radius, gravity, adjoint)