So, the way you currently have it written, `target['a']`

is a list, not a Tensor, as you can see in the error. Because it’s a list, you can’t use any PyTorch methods on it.

Normally, if `target['a']`

were a list of lists, you could just call `torch.tensor(target['a'])`

to convert it, and from there, use PyTorch methods like `permute()`

. For example:

```
a = [1,2,3]
b = []
for i in range(3):
b.append(a)
b = torch.tensor(b)
```

However, your `target['a']`

is a list of tensors, and it seems that you can’t simply cast it to a tensor in this case.

That’s why I suggested either preallocating a large tensor, and then saving to each row. Or concatenating tensors together. According to this post, you can put a list of tensors into `torch.cat()`

to concatenate them together. Meaning, you can do `torch.cat(target['a'])`

. However, this will give you a tensor of shape `[800,64,32,32]`

.

Also mentioned in the post linked above is that `torch.cat()`

concatenates into a *current* dimension, while `torch.stack()`

stacks in a *new* dimension. Therefore, if you want the shape after concatenation to be `[800,1,64,32,32]`

, you should use `torch.stack()`

.

Note, both `torch.cat()`

and `torch.stack()`

allow you to specify which dimension you want things concatenated / stacked in, so you may be able to avoid needing to permute afterward altogether. I.e.:

`torch.stack(target['a'],dim=2)`