This is my model and its variables:
input_size_prot = 1024
input_size_comp = 196
hidden_size_prot = 32
hidden_size_all = 100
output_size = 1
batch_size = 40
class pcNet(nn.Module):
def __init__(self, input_size_prot, input_size_comp, hidden_size_prot, hidden_size_all, output_size):
    super(pcNet, self).__init__()
    self.fc_prot = nn.Linear(input_size_prot, hidden_size_prot)
    self.fc_all = nn.Linear(hidden_size_prot+input_size_comp, hidden_size_all)
    self.fc2 = nn.Linear(hidden_size_all, output_size)

def forward(self, x):
    out = F.leaky_relu(self.fc_prot(x[0]))
    out = torch.cat((out, x[1]), dim=1)
    out = F.leaky_relu(self.fc_all(out))
    out = F.relu(self.fc2(out))
    return out

The labels I am trying to predict are all values between 5 and 11, however my model only predicts values between 5 and 7.5
The loss converges around 20. It is possible that my data (two sets of tensors) does not allow for better results, but perhaps you have ideas for my model.