5

我看到tf.nn.relutf.keras.activations.relu 都只计算 ReLU 函数(没有额外的全连接层或其他东西,如此所述),那么它们之间有什么区别?一个只是包裹另一个吗?

4

1 回答 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(SequentialModel)而不是原始 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 回答