我看到tf.nn.relu和tf.keras.activations.relu都只计算ReLU函数(没有附加的完全连接层或其他内容,如here所述),那么它们之间有什么区别?一个会包裹另一个吗?
答案 0 :(得分:1)
tf.nn.relu
:它来自TensorFlow库。它位于nn
模块中。因此,它被用作神经网络中的一种运算。如果x
是张量,则
y = tf.nn.relu( x )
它用于创建自定义图层和NN。如果将它与Keras一起使用,则在加载或保存模型或将模型转换为TF Lite时可能会遇到一些问题。
tf.keras.activations.relu
:它来自TensorFlow中包含的Keras库。它位于activations
模块中,该模块还提供了另一个激活功能。它主要用于Keras Layers(tf.keras.layers
)中的activation=
参数:
model.add( keras.layers.Dense( 25 , activation=tf.keras.activations.relu ) )
但是,它也可以用作上一节中的示例。它更特定于Keras(Sequential
或Model
),而不是原始TensorFlow计算。
tf.nn.relu
是TensorFlow特有的,而tf.keras.activations.relu
在Keras自己的库中有更多用途。如果仅使用TF创建NN,则极有可能使用tf.nn.relu
;如果创建Keras顺序模型,则将使用tf.keras.activations.relu
。