code: def __init__(self, input_dims=3, conv1_dim=64):
      super(TransformNet, self).__init__()
      self.conv = nn.ModuleList()
      self.conv.append(nn.Conv1d(input_dims, conv1_dim, 1))
      self.conv.append(nn.Conv1d(conv1_dim, conv1_dim * 2, 1))
      self.conv.append(nn.Conv1d(conv1_dim * 2, conv1_dim * 16, 1))
  
      self.bn = nn.ModuleList()
      self.bn.append(nn.BatchNorm1d(conv1_dim))
      self.bn.append(nn.BatchNorm1d(conv1_dim * 2))
      self.bn.append(nn.BatchNorm1d(conv1_dim * 16))
  
      self.maxpool = nn.MaxPool1d(conv1_dim * 16)
      self.pool_feat_len = conv1_dim * 16
  
      self.mlp2 = nn.ModuleList()
      self.mlp2.append(nn.Linear(conv1_dim * 16, conv1_dim * 8))
      self.mlp2.append(nn.Linear(conv1_dim * 8, conv1_dim * 4))
  
      self.bn2 = nn.ModuleList()
      self.bn2.append(nn.BatchNorm1d(conv1_dim * 8))
      self.bn2.append(nn.BatchNorm1d(conv1_dim * 4))
  
      self.input_dims = input_dims
      self.mlp_out = nn.Linear(conv1_dim * 4, input_dims * input_dims)
  
file_path: dgl/examples/pytorch/pointcloud/pointnet/pointnet_cls.py
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.autograd import Variable
label_desc: Use image node_id 1 to create a new TransformNet object from inherited base classes: nn with example: obj = TransformNet(input_dims, conv1_dim)