Примените карту по определенной оси в тензоре

#python #arrays #tensorflow #image-processing #matrix

#питон #массивы #тензорный поток #обработка изображений #матрица

Вопрос:

Я ищу функцию, tensorflow аналогичную tf.map_fn , но также использующую указанную ось, по которой я хочу применить карту, tf.map_fn по умолчанию применяет карту по оси 0, но нет параметра, который можно было бы изменить, я бы хотел, чтобы она отображалась по оси 2, есть ли такая функция? Если нет, есть ли какой-либо обходной путь, который все равно позволит мне использовать функции GPU и распараллеливания TensorFlow? Что-то аналогичное np.apply_along_axis .

Комментарии:

1. Итак, что вы пытаетесь сделать с «map( tensor3D, fn, axis=2)», это вернуть массив с одной записью на индекс оси 2, состоящий из «fn( tensor3D (:,:, i) для i в tensor3D.shape[2]»?

2. Да, я отредактировал для получения дополнительных разъяснений, это нечто аналогичное np.apply_along_axis .

3. Интересно, могли бы вы сделать это, поменяв оси, выполнив карту оси-0, а затем снова поменяв оси?

4. Я работаю с видео кадр за кадром, любые дополнительные операции означают дополнительное время, я рассмотрю это, если больше ничего нет, но как это сделать эффективно в tensorflow? о смене осей?

5. Я считаю, что «изменение формы» по сути является бесплатным, поскольку все, что он делает, — это переключает атрибуты .shape и .strides, но не затрагивает базовые данные.