我看到了这个" tf.nn.relu"记录在此:https://www.tensorflow.org/api_docs/python/tf/nn/relu
但是我也在这个页面上看到了tf.contrib.layers.relu的用法" model_fn": https://www.tensorflow.org/extend/estimators
似乎后者并没有像API一样被描述为第一个,但仅在使用中呈现。
这是为什么?文档是否过时了?为什么有两个 - 是一个旧的,不再支持/将被删除?
答案 0 :(得分:5)
他们不是一回事。
后者不是激活功能,而是fully_connected
图层,其激活功能预设为nn.relu
:
relu = functools.partial(fully_connected, activation_fn=nn.relu)
# ^ |< >|
# |_ tf.contrib.layers.relu tf.nn.relu_|
如果你阅读contrib.layers
的文档,你会发现:
设置默认激活功能的
fully_connected
的别名 可用:relu
,relu6
和linear
。
总之,tf.contrib.layers.relu
是fully_connected
图层的别名,其中{em> relu 激活,而tf.nn.relu
是重新线性单位激活函数本身。
答案 1 :(得分:2)
在2017 TensorFlow Dev Summit期间,TensorFlow项目的tf.contrib
部分被描述为更高级别功能的测试基地。这些功能供社区使用和测试。但是,当函数移动到tf.core时,无法保证不会对接口进行更改。在Tensorflow版本r0.12之间的r1.0,许多tf.contrib.layer
函数被移动到tf.layers
(在r1.0之前不存在)。简而言之,tf.contrib的文档永远不会像tf.core那样好。