тензор потока, как спроектировать разные условия за один проход? - PullRequest
0 голосов
/ 26 ноября 2018

Я проектирую свои условия тензорного потока, чтобы получить желаемую функцию потерь / вознаграждений.Выходные данные logits являются ненулевыми значениями между [-1,1], и есть еще один тензор con, который содержит значения в [1,0, -1, nan] (которые могут быть изменены в этой схеме) иимеет ту же форму, что и logits.Я хочу построить тензор reward на основе следующих поэлементных правил:

  1. , если con> 0, то, если logits> 0, вознаграждение = logits, иначе 0
  2. если con <0, то если <code>logits <0, вознаграждение = <code>logits, иначе 0
  3. , если con = 0, то вознаграждение = логитирует всевремя
  4. , если con равно nan, тогда вознаграждение = 0

Моя текущая попытка:

reward = tf.greater_equal(tf.multiply(logits, con), logits, tf.zeros_like(logits))

Мои вопросы:

  1. Достигнет ли указанное выше мое желаемое вознаграждение?Есть ли какие-то угловые случаи, которые приведут к сбоям или ошибкам?Будет ли использование NaN разрушать систему?
  2. Сохранят ли градиенты (по крайней мере, для ненулевых наград), если я получу вознаграждение за логиты?
  3. Есть ли лучший дизайн для этой проблемы?

Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...