我看到tf.nn.relu和tf.keras.activations.relu 都只计算 ReLU 函数(没有额外的全连接层或其他东西,如此处所述),那么它们之间有什么区别?一个只是包裹另一个吗?
问问题
3675 次
1 回答
9
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 Sequential 模型,那么我将使用tf.keras.activations.relu
.
于 2019-02-19T08:25:53.380 回答