Почему у Tensorflow нет условий? - PullRequest
0 голосов
/ 18 февраля 2020

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

Ответы [ 2 ]

2 голосов
/ 18 февраля 2020

TensorFlow не считается выполненным с нетерпением, как python. Таким образом, инфраструктура предоставляет дополнительные функции для имитации активных функций.

Некоторые примеры:

  • tf.cond(condition, true_fn, flase_fn): Если условие ложно, оно выполнит false_fn, в противном случае true_fn
z = tf.multiply(a, b)
result = tf.cond(x < y, lambda: tf.add(x, z), lambda: tf.square(y))
  • tf.while
i = tf.constant(0)
c = lambda i: tf.less(i, 10)
b = lambda i: tf.add(i, 1)
r = tf.while_loop(c, b, [i])

Источник: https://www.tensorflow.org/api_docs/python/

0 голосов
/ 18 февраля 2020

То, что вы предполагаете, неверно, оно имеет место, если условия и поток управления, это просто символ c. Например, tf.case :

f1 = lambda: tf.constant(17)
f2 = lambda: tf.constant(23)
r = tf.case([(tf.less(x, y), f1)], default=f2)

Его эквивалент этому коду:

if x < y:
    return 17;
else:
    return 23;

Существует также tf.switch_case для переключателя. заявления.

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