tf.nn.relu和tf.keras.activations.relu

时间:2019-02-19 07:46:33

标签: tensorflow tf.keras

我看到tf.nn.relutf.keras.activations.relu都只计算ReLU函数(没有附加的完全连接层或其他内容,如here所述),那么它们之间有什么区别?一个会包裹另一个吗?

1 个答案:

答案 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(SequentialModel),而不是原始TensorFlow计算。

  

tf.nn.relu是TensorFlow特有的,而tf.keras.activations.relu在Keras自己的库中有更多用途。如果仅使用TF创建NN,则极有可能使用tf.nn.relu;如果创建Keras顺序模型,则将使用tf.keras.activations.relu