【问题标题】:How to use softmax activation function at the output layer, but relus in the middle layers in TensorFlow?如何在输出层使用 softmax 激活函数,但在 TensorFlow 的中间层使用 relus?
【发布时间】:2017-07-30 13:20:47
【问题描述】:

我有一个由 3 个隐藏层组成的神经网络(所以我总共有 5 个层)。我想在每个隐藏层使用 Rectified Linear Units,但在最外层我想在 logits 上应用 Softmax。我想使用DNNClassifier。我已经阅读了 TensorFlow 的 official documentation,其中设置参数 activation_fn 的值他们说:

activation_fn:应用于每一层的激活函数。如果没有,将使用 tf.nn.relu。

我知道我总是可以编写自己的模型并使用激活函数的任意组合。但由于DNNClassifier 更具体,我想诉诸于此。到目前为止,我有:

classifier = tf.contrib.learn.DNNClassifier(
  feature_columns=features_columns,
  hidden_units=[10,20,10],
  n_classes=3
  # , activation_fn:::: I want something like below
  # activation_fn = [relu,relu,relu,softmax]
)

【问题讨论】:

    标签: python tensorflow neural-network softmax activation-function


    【解决方案1】:

    很抱歉,仅使用一个 DNNClassifier 是不可能的。 正如您在示例中所示,您可以提供activation_fn

    应用于每一层的激活函数。如果没有,将使用 tf.nn.relu。

    但不是每一层都有一个单独的。要解决您的问题,您必须将此分类器链接到另一个具有 tanh 动作功能的层。

    【讨论】:

    • 那么,如何将分类器链接到单独的层?这不等于链接到另一个分类器吗?那么错误将如何反向传播?
    猜你喜欢
    • 2015-06-26
    • 2016-07-07
    • 2021-03-19
    • 1970-01-01
    • 2018-02-07
    • 2020-10-09
    • 2018-09-29
    • 2021-01-13
    • 1970-01-01
    相关资源
    最近更新 更多