I have a network has two branches: the first one provides the fully connected vector fc1, and the second one provides the fc2. The final fc is

fc = alpha_1 * fc_1 + alpha_2 * fc_2

where alpha_i is a learned parameter. It will be learned during training. For a **batch size of 1**, I used `alpha = Parameter(torch.ones(1))`

as the code

```
class fc_combined(nn.Module):
def __init__(self):
super(parameter_learning, self).__init__()
self.alpha_list = nn.ParameterList([])
for i in range(2):
alpha = Parameter(torch.ones(1))
self.alpha_list.append(alpha)
def forward(self, prob):
fc = self.alpha_list[0]*fc_1+self.alpha_list[1]*fc_2
return fc
```

My question is that how to change the line `alpha = Parameter(torch.ones(1))`

to work on the batch size bigger than 1. Because each vector in `fc_i`

will be weighted by alpha, if we have the batch of fc_i, as `batch_sizex32`

, then I think alpha also has size of `batch_sizex1`

. I have tried

```
alpha = Parameter(torch.ones(batch_size, 1))
```

But it does not work on validation because the batch size of validation is 1, while we learned alpha size of batch_sizex1 in training. Any suggestion are welcome