Hi,
I am aware of this wonderful functionality in the Python API to declare a simple feedforward network in a loop using ModuleList. I am now trying to port my code into C++ and having trouble replicating the code there. I am not sure how the ModuleList works in C++. Any help would be great!
def __init__(self, numLayers, numNeuronsPerLyr):
super().__init__();
self.layers = nn.ModuleList();
current_dim = 2;
for lyr in range(numLayers): # define the layers in loop
l = nn.Linear(current_dim, numNeuronsPerLyr);
nn.init.xavier_normal_(l.weight);
nn.init.zeros_(l.bias);
self.layers.append(l);
current_dim = numNeuronsPerLyr;
self.layers.append(nn.Linear(current_dim, 3));
def forward(self, x):
m = nn.LeakyReLU();
ctr = 0;
for layer in self.layers[:-1]: # forward prop
x = m(self.bnLayer[ctr](layer(x))); # ReLU in all hidden layers
ctr += 1;
out = torch.softmax(self.layers[-1](x), dim = 1); # output layer softmax
return out