tf.image.resize_bilinear()- когда align_corners=False

Я использую Tensorflow 1.4.0

Tensorflow tf.image.resize_bilinear() имеет аргумент под названием "align_corners", и я путаюсь с поведением, когда мы устанавливаем его в False. В официальном документе говорится:

align_corners: необязательный bool. По умолчанию False. Если true, центры 4 угловых пикселей входного и выходного тензоров выравниваются, сохраняя значения в угловых пикселях. По умолчанию false.

Когда я использую tf.image.resize_bilinear () с align_corners=True в следующей программе:

import tensorflow as tf
sess = tf.Session()
x = tf.Variable(tf.Variable([[[[1],[2]],[[3],[4]]]]))
pooling_output_size = [4, 4]
pool_output = tf.image.resize_bilinear(x, pooling_output_size,align_corners=True)
sess.run(tf.global_variables_initializer())
print pool_output.eval(session=sess)

это выводит

[[[[1.       ]
   [1.3333334]
   [1.6666667]
   [2.       ]]

  [[1.6666667]
   [2.       ]
   [2.3333335]
   [2.6666667]]

  [[2.3333335]
   [2.6666665]
   [3.       ]
   [3.3333335]]

  [[3.       ]
   [3.3333333]
   [3.6666667]
   [4.       ]]]]

какие углы правильно выровнены.

Однако когда я установил align_corners=False, я получил следующие странные результаты

[[[[1. ]
   [1.5]
   [2. ]
   [2. ]]

  [[2. ]
   [2.5]
   [3. ]
   [3. ]]

  [[3. ]
   [3.5]
   [4. ]
   [4. ]]

  [[3. ]
   [3.5]
   [4. ]
   [4. ]]]]

Есть кто-нибудь, кто понимает, почему Tensorflow будет использовать эту странную реализацию? Я нигде не нашел объяснения.

На самом деле билинейная повышающая дискретизация PyTorch также имеет аргумент align_corner, когда вы устанавливаете его в True, он работает хорошо. Но если вы установите его в False, он будет отличаться от поведения Tensorflow. Я полностью запутался с их реализациями (возможно, просто используйте align_corners=True, и все будет в порядке).

1 ответ

Кажется, для обратной совместимости. Ссылка

https://hackernoon.com/how-tensorflows-tf-image-resize-stole-60-days-of-my-life-aba5eb093f35

предлагает мне всегда использовать align_corners=True

Другие вопросы по тегам