class_docstr: A torch.nn.Linear wrapper that declares input and output shapes, and enables the customization of:
  
  1. how weights and biases are initialized
  2. normalization (layer and batch)
  3. activations
  4. dropout
class_docstr_tok: ["A","torch.nn.Linear","wrapper","that","declares","input","and","output","shapes",",","and","enables","the","customization","of",":","1.","how","weights","and","biases","are","initialized","2.","normalization","(","layer","and","batch",")","3.","activations","4.","dropout"]
code: def output_shape(self) -> torch.Size:
      return torch.Size([self.output_size])
  
imports: import logging
  from copy import deepcopy
  from typing import Dict, List, Optional
  import torch
  from torch.nn import Dropout, Linear, ModuleList
  from ludwig.modules.normalization_modules import create_norm_layer
  from ludwig.utils.torch_utils import activations, initializer_registry, LudwigModule
label_desc: Use image node_id 4 for calling the FCLayer obj's underlying member method code with example usage: obj.output_shape() and returns: torch