【问题标题】:Sigmoid as a last layer in LSTMSigmoid 作为 LSTM 中的最后一层
【发布时间】:2021-07-29 18:17:12
【问题描述】:

我有一个带有 LSTM 的分类 (Keras),用于将 4 个属性标记为 2 个类(安全和不安全)的数据集。将 sigmoid 放在最后一层,我得到了 98% 的准确率,而不是 softmax。 我的问题是:
1)如果我在最后一层使用 Softmax: 在 Softmax 基于 2 个神经元作为其他代码末尾的输出,我可以比较分数并说出数据属于哪个。 例如 score_safe= 1.2945 和 score_unsafe= -9.0 那么我可以说这行数据集属于安全类。 2)如果我在最后一层使用 Sigmid: 然后我只需要将一个神经元作为输出,我如何比较分数以及如何判断这行数据集属于哪个类?

model = Sequential()
model.add(LSTM(256, input_shape=(x_train.shape[1:]), activation='tanh', return_sequences=True))
#model.add(BatchNormalization())
model.add(Dense(128, activation='tanh'))
#model.add(BatchNormalization())
model.add(Dense(128, activation='tanh'))
model.add(Dense(1, activation='sigmoid'))

【问题讨论】:

    标签: python keras deep-learning softmax sigmoid


    【解决方案1】:

    sigmoid 的输出是一个介于 0. 和 1 之间的浮点数。

    通常情况下,如果输出低于 0.5,则模型将被分类为第一类(无论哪个类在您的数据集中表示为 0)。如果输出高于 0.5,则模型将分类为第二类(在您的数据集中表示为 1)。

    可以改变 0.5 的阈值以引入对某一类或另一类的偏见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-15
      • 2021-03-26
      • 2018-01-08
      • 1970-01-01
      • 2019-03-18
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      相关资源
      最近更新 更多