tf.nn.relu与tf.contrib.layers.relu?

dmo*_*oly 3 python tensorflow

我在这里记录了这个"tf.nn.relu":https://www.tensorflow.org/api_docs/python/tf/nn/relu

但是我还在"model_fn"中看到了tf.contrib.layers.relu在此页面上的用法:https://www.tensorflow.org/extend/estimators

看起来后者并没有像API那样被描述为第一个,而是仅在使用中呈现.

为什么是这样?文档是否过时了?为什么有两个 - 是一个旧的,不再支持/将被删除?

Mos*_*oye 5

它们不是同一件事.

后者不是激活函数,而是将激活函数预设为的图层:fully_connected nn.relu

relu = functools.partial(fully_connected, activation_fn=nn.relu)
# ^                                                     |<   >|
# |_ tf.contrib.layers.relu                     tf.nn.relu_|
Run Code Online (Sandbox Code Playgroud)

如果你阅读了文档contrib.layers,你会发现:

fully_connected设置默认激活功能的别名可用:relu,relu6linear.

概括地,tf.contrib.layers.relu为一个别名fully_connected与层RELU活化而tf.nn.relu是整流线性单位的激活函数本身.