class_docstr: Stochastic drop paths per sample for residual blocks.
  Based on:
  https://github.com/rwightman/pytorch-image-models
code: def drop_path(
      self,
      x,
      drop_prob: float = 0.0,
      training: bool = False,
      scale_by_keep: bool = True,
  ):
      if drop_prob == 0.0 or not training:
          return x
      keep_prob = 1 - drop_prob
      shape = (x.shape[0],) + (1,) * (x.ndim - 1)
      random_tensor = x.new_empty(shape).bernoulli_(keep_prob)
      if keep_prob > 0.0 and scale_by_keep:
          random_tensor.div_(keep_prob)
      return x * random_tensor
  
imports: from __future__ import annotations
  import torch.nn
label_desc: Use image node_id 2 for calling the DropPath obj's underlying member method code with example usage: obj.drop_path(x, drop_prob, training, scale_by_keep) and returns: unknown, x