class_docstr: Convolutional FFN module.
  
  Args:
      channels (`int`): input dimension (same as output dimension)
      internal_channels (`int`): hidden dimension
      drop_rate (`float`): drop rate of drop path
class_docstr_tok: ["Convolutional","FFN","module",".","Args",":","channels","(","`","int","`",")",":","input","dimension","(","same","as","output","dimension",")","internal_channels","(","`","int","`",")",":","hidden","dimension","drop_rate","(","`","float","`",")",":","drop","rate","of","drop","path"]
code: def forward(self, x):
      out = self.preffn_bn(x)
      out = self.pw1(out)
      out = self.nonlinear(out)
      out = self.pw2(out)
      return x + self.drop_path(out)
  
imports: from torch import nn
  from towhee.models.layers.droppath import DropPath
  from towhee.models.layers.conv_bn_activation import Conv2dBNActivation
label_desc: Use image node_id 2 for calling the ConvFFN obj's underlying member method code with example usage: obj.forward(x) and returns: unknown