So, when I’m calling
for data, label in train_loader:  
      a, cutoff = model(torch.t(data),R,1)
      loss = (cutoff-label)**2
      loss.backward()   

I have this
RuntimeError: one of the variables needed for gradient computation 
has been modified by an inplace operation: [torch.FloatTensor [1, 1]], 
which is output 0 of SelectBackward, is at version 51; 
expected version 50 instead. Hint: the backtrace further above shows 
the operation that failed to compute its gradient. The variable 
in question was changed in there or anywhere later. Good luck!   

There is my Net forward function
def forward(self, x,R,L):
          a = torch.zeros(R,L,1)
          for cycle in range (R):
           if cycle ==0:  
               a[0]=(self.w*torch.mm(self.wih,x))

           a[cycle]= relu(torch.mm(self.whh,a[cycle-1])+ (self.w*torch.mm(self.wih,x)))            
          cutoff =(sqr(torch.norm(torch.mm(torch.t(self.wih),a[R-1])))/sqr(torch.norm(x)))
          return a, cutoff

And problem is in
a[cycle] = .....a[cycle-1]....

And that cycle is changing
How can I fix this in-place operation or cycle?
There is Traceback:
Traceback (most recent call last):

  File "C:\Users\A877\untitled2.py", line 69, in <module>
    loss.backward()

  File "C:\Users\A877\.conda\envs\test\lib\site-packages\torch\tensor.py", line 195, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)

  File "C:\Users\A877\.conda\envs\test\lib\site-packages\torch\autograd\__init__.py", line 97, in backward
    Variable._execution_engine.run_backward(