It really depends on what you want your trainable parameters to be.
For a model such as
a * Input1 * Input 2 + b * Input3 + c
you can use this network
FunctionLayer[
Function[
NetArray[]*#Input1*#Input2 + NetArray[]*#Input3 + NetArray[]]]
If, let's say, the input are 5-d arrays, the fully specified net will be
d = 5;
net = NetInitialize@FunctionLayer[Function[
NetArray["Dimensions" -> d]*#Input1*#Input2 +
NetArray["Dimensions" -> d]*#Input3 +
NetArray["Dimensions" -> d]],
"Input1" -> d, "Input2" -> d, "Input3" -> d]