如何在 Tensorflow“tf.layers.dense”中使用“leaky_relu”作为激活?

Ami*_*min 9 python tensorflow

使用Tensorflow 1.5,我想补充leaky_relu活化的致密层的输出,而我能够改变alphaleaky_relu(检查这里)。我知道我可以这样做:

output = tf.layers.dense(input, n_units)
output = tf.nn.leaky_relu(output, alpha=0.01)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以将其写在一行中,因为我们可以这样做relu

ouput = tf.layers.dense(input, n_units, activation=tf.nn.relu)

我尝试了以下操作,但出现错误:

output = tf.layers.dense(input, n_units, activation=tf.nn.leaky_relu(alpha=0.01))
TypeError: leaky_relu() missing 1 required positional argument: 'features'
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

小智 10

如果您真的坚持为此使用单衬,则可以使用模块中的partial()方法functools,如下所示:

import tensorflow as tf
from functools import partial

output = tf.layers.dense(input, n_units, activation=partial(tf.nn.leaky_relu, alpha=0.01))
Run Code Online (Sandbox Code Playgroud)

应该注意的是,这partial()不适用于所有操作,您可能必须partialmethod()从同一个模块中试试运气。

希望这对您的努力有所帮助。


Kat*_*uya 7

至少在 2.3.0.dev20200515 版本的 TensorFlow 上,可以使用LeakyReLU任意alpha参数激活作为层的activation参数Dense

output = tf.keras.layers.Dense(n_units, activation=tf.keras.layers.LeakyReLU(alpha=0.01))(x)
Run Code Online (Sandbox Code Playgroud)

LeakyReLU 激活工作如下:

LeakyReLU 数学表达式

泄漏ReLU图

更多信息:维基百科 - 整流器(神经网络)

  • 有效的答案很有帮助,但请考虑添加对其作用的解释。 (3认同)