class_docstr: DWTFunction
class_docstr_tok: ["DWTFunction"]
code: def backward(ctx, dx):
      if ctx.needs_input_grad[0]:
          w_ll, w_lh, w_hl, w_hh = ctx.saved_tensors
          b, c, h, w = ctx.shape
          dx = dx.view(b, 4, -1, h // 2, w // 2)
  
          dx = dx.transpose(1, 2).reshape(b, -1, h // 2, w // 2)
          filters = torch.cat([w_ll, w_lh, w_hl, w_hh], dim=0).repeat(
              c, 1, 1, 1
          )
          dx = torch.nn.functional.conv_transpose2d(
              dx, filters, stride=2, groups=c
          )
  
      return dx, None, None, None, None
  
imports: import torch
  from torch import nn
  from torch.autograd import Function
  import pywt
  from functools import partial
label_desc: Use image node_id 2 for calling the DWTFunction obj's underlying member method code with example usage: obj.backward(ctx, dx) and returns: dx,  None,  None,  None,  None