Hello everyone!
How can i get values from z-axis of a tensor 4d (example 32,128,4,4).
In this case i would like to get 128 value (planes) from the first 4x4 matrix and so on.
Anyone known the right operations to do that?
Thanks in advance!
Hello everyone!
How can i get values from z-axis of a tensor 4d (example 32,128,4,4).
In this case i would like to get 128 value (planes) from the first 4x4 matrix and so on.
Anyone known the right operations to do that?
Thanks in advance!
I’m not sure I understand the use case correctly.
To access values in a tensor, you can use indexing as:
x = torch.randn(32, 128, 4, 4)
print(x[0, 0])
This would print the “first” 4x4
tensor.
Could you give an example, how your output should look like, please?
Ok, i try to explain myself correctly.
In the image below, i would like to extract a tensor from each N plane (red points) starting from the first column/rown and so on. So, in this way i have to obtain X tensors composed by each planes (conv2). Is it possible with pytorch?
This is a sample:
import torch
x = torch.tensor(
[
[
[[1, 2], [3, 4], ],
[[5, 6], [7, 8], ],
[[9, 10], [11, 12], ],
],
[
[[13, 14], [15, 16], ],
[[17, 18], [19, 20], ],
[[21, 22], [23, 24], ],
]
]
)
print(x.shape)
# torch.Size([2, 3, 2, 2])
print(x.reshape(2, 3, 4).transpose(2, 1).reshape(8, 3))
# tensor([[ 1, 5, 9],
# [ 2, 6, 10],
# [ 3, 7, 11],
# [ 4, 8, 12],
# [13, 17, 21],
# [14, 18, 22],
# [15, 19, 23],
# [16, 20, 24]])
generally:
a, b, c, d = x.shape
x.reshape(a, b, c*d).transpose(2, 1).reshape(a*c*d, b)
perfect, thanks a lot!