Hi,

I want to stack some tensors keeping their automatic gradient information but screw up.

I have the following script where I want to compute the derivative with respect to `x`

:

```
_k_plusplus = []
for aplus_idx, aplus_val in enumerate(aplus):
state_plus = torch.tensor([x[0], aplus_val])[None, :]
pred_mean = likelihood(gp_kplus(state_plus)).mean
_k_plusplus.append(pred_mean)
k_plusplus = torch.stack(_k_plusplus).flatten()
```

where `print(k_plusplus)`

returns:

```
tensor([0.3481, 0.3481, 0.3481, 0.3481, 0.3481], dtype=torch.float64,
grad_fn=<ViewBackward>)
```

It seems to be OK for me, but with this syntax, `torch.autograd.gradcheck`

retunrs `False`

.

Here note that `pred_mean = likelihood(gp_kplus(state_plus)).mean`

is coming from `GPyTorch`

.

`print(pred_mean)`

retuns:

```
tensor([0.2027], dtype=torch.float64, grad_fn=<ViewBackward>)
```

again it seems to be reasonable for me.

My guess is when I stack the tensors by `torch.stack`

or maybe at some points, I lose the automatic gradient information.

When I simplify the script:

```
k_plusplus = torch.empty(aplus.shape)
for aplus_idx, aplus_val in enumerate(aplus):
k_plusplus[aplus_idx] = torch.tensor(0.1)
```

It passes the gradient check without changing the rest of my code.

Thank you in advance for your kind help.