Как выбрать значения из тензора, используя другой тензор в TensorflowPython

Программы на Python
Anonymous
Как выбрать значения из тензора, используя другой тензор в Tensorflow

Сообщение Anonymous »

У меня есть 2 массива (тензоры) одинаковой формы, например:

Код: Выделить всё

array1 = [[[0, 1, 0], [1, 0, 0]], [[0, 1, 0], [0, 0, 1]]]
array2 = [[[0.2, 0.7, 0.1], [0.2, 0.4, 0.4]], [[0.2, 0.8, 0.0], [0.5, 0.2, 0.3]]]
Я хочу создать новый массив (тензор), чтобы значения из массива2 выбирались на основе значений массива1.

Код: Выделить всё

array3 = tf.magic_function(array1, array2)
# array3 = [[[0.7], [0.2]], [[0.4], [0.3]]]
У меня также есть массив array1, не закодированный в горячем виде, поэтому решение, предполагающее array1 = [[1, 0], [1, 2]], также приемлемо. Решение должно использовать функции Tensorflow, NumPy неприемлем, поскольку я не могу преобразовать свои тензоры в массивы NumPy во время обучения из-за быстрого выполнения. Это для взвешенной (разреженной) функции потери CategoricalCrossEntrophy.
Я использую Tensorflow 2.10 и Python 3.9.
Посмотрел tf.gather() и tf.nd_gather(), но они, похоже, не делают то, что я хочу.


Подробнее здесь: https://stackoverflow.com/questions/790 ... tensorflow

Вернуться в «Python»