class_docstr: Creates a Fisher-Snedecor distribution parameterized by :attr:`df1` and :attr:`df2`.
  
  Example::
  
      >>> # xdoctest: +IGNORE_WANT("non-deterministic")
      >>> m = FisherSnedecor(torch.tensor([1.0]), torch.tensor([2.0]))
      >>> m.sample()  # Fisher-Snedecor-distributed with df1=1 and df2=2
      tensor([ 0.2453])
  
  Args:
      df1 (float or Tensor): degrees of freedom parameter 1
      df2 (float or Tensor): degrees of freedom parameter 2
code: def __init__(self, df1, df2, validate_args=None):
      self.df1, self.df2 = broadcast_all(df1, df2)
      self._gamma1 = Gamma(self.df1 * 0.5, self.df1)
      self._gamma2 = Gamma(self.df2 * 0.5, self.df2)
  
      if isinstance(df1, Number) and isinstance(df2, Number):
          batch_shape = torch.Size()
      else:
          batch_shape = self.df1.size()
      super().__init__(batch_shape, validate_args=validate_args)
  
file_path: pytorch/torch/distributions/fishersnedecor.py
imports: from numbers import Number
  import torch
  from torch import nan
  from torch.distributions import constraints
  from torch.distributions.distribution import Distribution
  from torch.distributions.gamma import Gamma
  from torch.distributions.utils import broadcast_all
label_desc: Use image node_id 1 to create a new FisherSnedecor object from inherited base classes: Distribution with example: obj = FisherSnedecor(df1, df2, validate_args)