Hi guys,

I need to unsqueeze a tensor by one dimension provided that this dimension is added to the following dim. Can I do without for loop?

For example, A= [1,2,4,4], I need to make it [1,5,5].

Any thoughts?

Hi guys,

I need to unsqueeze a tensor by one dimension provided that this dimension is added to the following dim. Can I do without for loop?

For example, A= [1,2,4,4], I need to make it [1,5,5].

Any thoughts?

Tensor A with 1 x 2 x 4 x 4 has 32 element. You cant squeeze it to 1 x 5 x 5 which will be 25 elements.

If you just want to sqeeze dim 1 somehow, `A = A.mean(dim=1)`

gives 1 x 4 x 4 tensor

Thanks Alwyn for your prompt reply.

Okay, We can say that I need it in the form A=[1,8,4].

This what I had done with the loop,

x1=[]

for i in range(x.shape[1]):

x_t = x[:,i,:,:]

x1.append(x_t)

` x_t = torch.cat(x1, dim=1)`

You can use view like below:

```
A = = torch.rand((1, 2, 4, 4)) # 1 x 2 x 4 x 4
batch, channel, height, width = A.shape
A = A.view(batch, channel*height, width) # 1 x 8 x 4
```