I have a question regarding narrowing tensors when using `autograd`

.

If I have a variable `x1`

obtained by narrowing another variable `x`

, the backward phase seems to correctly compute the gradients for `x`

, but `x1.grad`

is zero. Is this an expeced behaviour?

```
import torch
from torch.autograd import Variable
x = Variable(torch.linspace(1, 12, 12).view(3, 4), requires_grad=True)
x1 = x[:,:2] # x1 is 3 x 2
x2 = x[:,1:] # x2 is 3 x 3
y1 = 2 * x1
y2 = 3 * x2
y1.backward(torch.ones(3, 2))
y2.backward(torch.ones(3, 3))
print(x.grad) # This is correct
# Variable containing:
# 2 5 3 3
# 2 5 3 3
# 2 5 3 3
# [torch.FloatTensor of size 3x4]
print(x1.grad) # This is zero
# Variable containing:
# 0 0
# 0 0
# 0 0
# [torch.FloatTensor of size 3x2]
```