Я видел tf.identity
используемый в нескольких местах, таких как официальное учебное руководство CIFAR-10 и реализация пакетной нормализации на stackoverflow, но я не вижу, почему это необходимо.
Для чего это используется? Кто-либо может дать вариант использования или два?
Один предложенный ответ - то, что это может использоваться для передачи между ЦП и GPU. Это не ясно мне. Расширение вопроса, на основе этого: loss = tower_loss(scope)
находится под блоком GPU, который намекает мне, что все операторы определили в tower_loss
отображаются на GPU. Затем в конце tower_loss
, мы видим total_loss = tf.identity(total_loss)
прежде чем это будет возвращено. Почему? Каков был бы дефект с не использованием tf.identity
здесь?
Я вижу, что этот вид взлома для проверки утверждает:
assertion = tf.assert_equal(tf.shape(image)[-1], 3, message="image must have 3 color channels")
with tf.control_dependencies([assertion]):
image = tf.identity(image)
Также это раньше только давало имя:
image = tf.identity(image, name='my_image')