Уточнение индексации тензора Pytorch

#pytorch #tensor #matrix-indexing

#pytorch #тензор #матрица-индексирование

Вопрос:

Рассмотрим следующее:

 a = torch.rand(2, 3, 4)
 
 tensor([[[0.2410, 0.3700, 0.9221, 0.5289],
         [0.8820, 0.2856, 0.4072, 0.6177],
         [0.4279, 0.9396, 0.7483, 0.0087]],

        [[0.7295, 0.4965, 0.9559, 0.0419],
         [0.7379, 0.5761, 0.3439, 0.8682],
         [0.3886, 0.2435, 0.4024, 0.2007]]])
 
 a[[0], [0,2]][..., [0,3]]
 
 tensor([[0.2410, 0.5289],
        [0.4279, 0.0087]])
 

Пока все хорошо, но когда я пытаюсь выбрать одно и то же подмножество напрямую a , я получаю (для меня) неожиданные результаты.

 a[[0], [0,2], [0,3]]
 
 tensor([0.2410, 0.0087])
 

Я попытался найти объяснение тому, что именно происходит в последнем случае, но не нашел ни одного. Я буду рад понять, какова семантика этой последней формы индексации.

Спасибо!