Hi, I am trying to train a neural network with the help of batch gradient descent. I am not sure if I am doing it correctly because I am confronting a lot of errors and an incorrect output. The code is as mentioned -

```
class Net(nn.Module):
def __init__(self, in_features):
super().__init__()
self.disc = nn.Sequential(
nn.Linear(in_features, 4),
nn.Sigmoid(),
nn.Linear(4, 1),
nn.Sigmoid(),
)
def forward(self, x):
return self.disc(x)
net = Net(image)
for epoch in range(num_epochs):
totalloss=torch.empty_like(lossNet)
net.zero_grad()
for sample in dataset:
lossNet= xxxxx
totalloss=totalloss+lossNet
totalloss=torch.div(totalloss,5) #Since there are 5 samples in the dataset so taking the average
net.zero_grad()
totalloss.backward(retain_graph=True)
opt_net.step()
```

I would like to know if this is the correct way of solving batch gradient descent? If not then what is the alternative method to apply batch gradient descent in Pytorch?