Как операторы маски работают с тензорным срезом? - PullRequest
0 голосов
/ 11 ноября 2019

Кажется, что функция срезанного тензорного потока имеет функцию маскирования с такими аргументами, как (begin_mask, end_mask, ellipsis_mask, new_axis_mask, shrink_axis_mask). Но как это действительно работает? В документации нет примера? Позволяет ли нам уменьшить ранг тензора или просто размерность? Эти аргументы принимают значения типа int в качестве типа данных.

Документ говорит: -

В каждом поле маски (begin_mask, end_mask, ellipsis_mask, new_axis_mask, shrink_axis_mask) i-й бит будет соответствовать i-й спецификации. Если установлен i-й бит begin_mask, begin [i] игнорируется, и вместо него используется максимально возможный диапазон в этом измерении. end_mask работает аналогично, за исключением конечного диапазона

Я понимаю базовые пошаговые срезы из link . Так как это действительно работает? Возможно, пример кода прояснит ситуацию ...

Позволяет ли нам логическое индексирование каждого элемента? Скажем, у нас есть массив целых чисел NxN и логический массив масок NxN, и мы хотим вернуть ему замаскированный массив (размер зависит от числа истинных значений)?

Кроме того, если мне разрешено использовать только эти операторы: TFLITE GPU OPS , как мне добиться булевой индексации?

...