Sorry for the stupid question, but i cannot find a fast way to solve my issue, so i thought maybe the experts here can help me with that or maybe pytorch has a function that already does this in a fast way.
I have a Tensor with size of BxRxC
:
e.g.
here T
has dimension of 1x3x4
T = torch.round(torch.rand(1,3,4)*10)
T =
6 8 10 8
2 4 7 2
5 0 4 1
Now i have another tensor (K
) with way larger size, i know that tensor K
includes values of each row of Tensor tensor T
somewhere in it as well as other values, but i dont know where they are
e.g.
here K
has dimension of 1x9x4
K = torch.cat((torch.round(torch.rand(1,3,4)*10),T, torch.zeros(1,3,4)),1)
K =
5 7 8 1
8 2 7 8
0 10 8 8
6 8 10 8
2 4 7 2
5 0 4 1
0 0 0 0
0 0 0 0
0 0 0 0
as we can see K
has the values of T
in row: 1,4, and 5
in terms of size B and C will always be the same in both T
and K
.
How I can get the row indexes in K
that includes the values in T
?
Also if I have another tensor D
and lets say I have the indexes for the rows from last steps, how I can extract only the values in the rows of tensor D
based on the indexes that i got, meaning that if D
is:
D = torch.round(torch.rand(1,9,4)*10)
D =
2 6 8 7
3 3 9 9
4 4 4 4
2 7 5 2
3 1 9 7
3 4 4 7
1 5 2 1
3 7 1 7
5 9 8 10
I want the output be
O =
2 7 5 2
3 1 9 7
3 4 4 7
my output will be the same size as T
,
P.s. I just multiplied the number with 10 to make it easier for reading purposes, they are not integer all the time.