class_docstr: Local Patch Interaction module that allows explicit communication between tokens in 3x3
  windows to augment the implicit communcation performed by the block diagonal
  scatter attention. Implemented using 2 layers of separable 3x3 convolutions with
  GeLU and BatchNorm2d
class_docstr_tok: ["Local","Patch","Interaction","module","that","allows","explicit","communication","between","tokens","in","3x3","windows","to","augment","the","implicit","communcation","performed","by","the","block","diagonal","scatter","attention",".","Implemented","using","2","layers","of","separable","3x3","convolutions","with","GeLU","and","BatchNorm2d"]
code: def forward(self, x, H, W):
      B, N, C = x.shape
      x = x.permute(0, 2, 1).reshape(B, C, H, W)
      x = self.conv1(x)
      x = self.act(x)
      x = self.bn(x)
      x = self.conv2(x)
      x = x.reshape(B, C, N).permute(0, 2, 1)
  
      return x
  
imports: import logging
  import math
  from functools import partial
  from typing import List, Optional
  import torch
  import torch.nn
  from fairscale.nn import checkpoint_wrapper
  from vissl.config import AttrDict
  from vissl.models.model_helpers import DropPath, to_2tuple, trunc_normal_
  from vissl.models.trunks import register_model_trunk
  from vissl.models.trunks.vision_transformer import Mlp
  from vissl.utils.fsdp_utils import fsdp_wrapper
  from vissl.utils.misc import set_torch_seed
label_desc: Use image node_id 2 for calling the LPI obj's underlying member method code with example usage: obj.forward(x, H, W) and returns: x