Подтвердить что ты не робот

С использованием протекающего relu в Tensorflow

Как я могу изменить G_h1 = tf.nn.relu(tf.matmul(z, G_W1) + G_b1) на протекание relu? Я пробовал цикл по тензору с помощью max(value, 0,01*value), но я получаю TypeError: Using a tf.Tensor as a Python bool is not allowed.

Я также попытался найти исходный код на relu на Tensorflow github, чтобы я мог модифицировать его на протекающее relu, но я не смог его найти.

4b9b3361

Ответ 1

Вы можете написать один на основе tf.relu, что-то вроде:

def lrelu(x, alpha):
  return tf.nn.relu(x) - alpha * tf.nn.relu(-x)

ИЗМЕНИТЬ

Tensorflow 1.4 теперь имеет собственный tf.nn.leaky_relu.

Ответ 2

Если альфа- 1 (это должно быть), вы можете использовать tf.maximum(x, alpha * x)

Ответ 4

Маноло - это правильный способ сделать это. Он по крайней мере в 2 раза быстрее, чем альтернатива, предложенная пользователем1735003.