You have 3 trainable transformations (fcN), if this function defines a whole network, you may call them input layer, hidden layer and output layer, otherwise you may call this a block to disambiguate. You can set fc1,fc2 output sizes independently and arbitrary as they correspond to internal data representations. Two relu activations in between can be viewed as separators that provide non-linearity.