tf.nn.relu 与 tf.keras.activations.relu

Jon*_*ona 4 tensorflow tf.keras

我看到两个tf.nn.relutf.keras.activations.relu只计算RELU功能(无需额外的完全连接层或东西,如所描述这里),那么什么是它们之间的区别?一个只是包裹另一个吗?

Shu*_*hal 8

  • tf.nn.relu:它来自 TensorFlow 库。它位于nn模块中。因此,它被用作神经网络中的操作。如果x是张量,则

    y = tf.nn.relu( x )
    
    Run Code Online (Sandbox Code Playgroud)

    它用于创建自定义层和神经网络。如果将其与 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  ) )
    
    Run Code Online (Sandbox Code Playgroud)

    但是,它也可以用作上一节中的示例。它更特定于 Keras (SequentialModel) 而不是原始的 TensorFlow 计算。

tf.nn.relu是 TensorFlow 特定的,而tf.keras.activations.relu在 Keras 自己的库中有更多用途。如果我创建一个只有 TF 的 NN,我很可能会使用tf.nn.relu,如果我正在创建一个 Keras Sequential 模型,那么我将使用tf.keras.activations.relu.