Пространственная пирамида в тензорном потоке с неизвестной формой - PullRequest
0 голосов
/ 21 апреля 2020

Я хотел бы выполнить пространственное пирамидальное объединение в тензорном потоке. На этот вопрос уже ответили там (и другие вопросы на Stackoverflow.com), но предлагаемое решение не работает с неизвестной формой ввода.

Существует ли реализация, которая обрабатывает неизвестные формы на определение графика?

1 Ответ

0 голосов
/ 22 апреля 2020

Для решения этой проблемы я предложил другую реализацию, в которой используется маска, масштабируемая с использованием ближайшего соседа:

def avg_spp(self, input, scale, name, padding=DEFAULT_PADDING):
    eye = tf.eye(scale*scale, batch_shape=(tf.shape(input)[0],))
    mask = tf.reshape(eye, (-1, scale, scale, scale*scale))
    mask = tf.image.resize_nearest_neighbor(mask, tf.shape(input)[1:3])
    spp = tf.multiply(tf.expand_dims(input, 4), tf.expand_dims(mask, 3))
    spp = tf.divide(tf.reduce_sum(spp, axis=[1,2]), tf.cast(tf.count_nonzero(spp, axis=[1,2]), tf.float32))
    spp = tf.reshape(spp, (-1, tf.shape(input)[3], scale, scale))
    spp = tf.transpose(spp, [0,2,3,1], name=name)
    return spp
...