class A(nn.Module):
def __init__(self, some_params):
#SOMETHING HERE (for example several Linear)
def forward(self, x):
#SOMETHING ELSE HERE
Now, suppose I want to use an array of class A in another model. Does the following way work?
class B(nn.Module):
def __init__(self, some_params):
self.a = [ ]
for i in range(100):
self.a.append(A(some_params))
def forward(self, x):
outs = [ ]
for i in range(100):
out = self.a(x[ i ])
outs.append(out)
outs_concat = outs[0]
for i in range(1,100):
outs_concat = torch.cat((outs_concat, outs[ i ]), 1)
Moreover, would someone please tell me how can I be sure about the parameters? Do the parameters in module A act as paramters of module B? Because I want to update all parameters when I call optimizer and I do not know how to become sure about updating all parameters.
I am looking forward to see your solutions.
Regards,
Sina
This won’t work, as your A module won’t be registered in a plain Python list, so you would have to use a nn.ModuleList instead.
This will make sure to register the passed module as well as all parameters in the parent module.
Calling B.parameters() will thus yield all parameters.
You could double check it via print(dict(modelB.named_parameters())).
Whenever I use the following code in “forward” method of class B, it does not work for multi-instances:
for i in range(10):
out = self.a[i](X[i])
My mean is that suppose the input array be in shape (batch_size, 5, 10) and batch_size = 3
then, when I input the input array into instance of class B, it will rise an error of array index out of bound.
b = B()
y_hat = b(input_array[index : index + batch_size])
Would you please help me to know how to work with batches in this case?
Actually, each instance (sample) of X has different features and each feature must feed to each self.a[ i ] separately, then I would like to concatenate all of their outputs.
In this example, we have (batch_size, 5, 10) input.
It means that I have batch_size samples, 5 features, and each feature is a vector of size 10.
Now, I want to feed each feature i to its corresponding self.a[ i ].