class_docstr: Copies the hidden tensor in a :class:`Portal`. It replaces the hidden
  tensor with copied one.
class_docstr_tok: ["Copies","the","hidden","tensor","in","a",":","class",":","`","Portal","`",".","It","replaces","the","hidden","tensor","with","copied","one","."]
code: def backward(
      ctx: Context,
      grad_phony: Tensor,
  ) -> Tuple[None, None, None, None]:
      portal = ctx.portal
  
      assert portal.grad is not None
      _, _, portal.grad = Copy.backward(ctx, portal.grad)
  
      return None, None, None, None
  
imports: from typing import Any, List, Optional, Tuple
  import torch
  from torch import Tensor
  from .None import Namespace
  from ..copy import Context
  from ..copy import Copy
  from ..phony import get_phony
  from ..stream import AbstractStream, get_device
label_desc: Use image node_id 2 for calling the PortalCopy obj's underlying member method code with example usage: obj.backward(ctx, grad_phony) and returns: None,  None,  None,  None