This is my class definition:

```
class Tracker(nn.Module):
def __init__(self):
super(Tracker, self).__init__()
self.bigru = nn.GRU(input_size=2, hidden_size=100, batch_first=True, bidirectional=True)
self.fc1 = nn.Linear(200, 32)
self.fc2 = nn.Linear(32, 2)
def forward(self, inputs):
x, states = self.bigru(inputs)
x = self.fc1(x[:, -1, :])
x = self.fc2(x)
return x
```

While training I use `loss.backward(retain_graph=True)`

. But I get the error

RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation.

I went through couple of discussions on the topic and realized it was due to the in-place operation of a tensor.So I switched to the following code.

```
def forward(self, inputs):
x, states = self.bigru(inputs)
k = x.clone()
y = self.fc1(k[:, -1, :])
z = self.fc2(y.clone())
return z
```

The error still persists. Can anyone tell me where am I going wrong? Thanks!