【问题标题】:Sigmoid function outputSigmoid 函数输出
【发布时间】:2021-04-25 03:00:07
【问题描述】:

我有以下神经网络模型。

nn_classifier = Sequential()
nn_classifier.add(Dense(output_dim = 16 ,activation='relu',input_dim = 13))
nn_classifier.add(Dense(output_dim = 16,activation='relu'))
nn_classifier.add(Dense(output_dim = 1, activation = 'sigmoid'))

nn_classifier.compile(optimizer = 'sgd', loss = 'binary_crossentropy', metrics=[tf.keras.metrics.BinaryAccuracy(threshold=0.5)])
model=nn_classifier.fit(X_train, Y_train ,validation_split=0.33, batch_size = 10, nb_epoch = 100)
Y_pred = nn_classifier.predict(X_test)

由于我在输出层中使用了 sigmoid 函数,因此我期望预测值 (Y_pred) 为 0 或 1。但我得到了一些十进制值。是不是我的理解错了?

【问题讨论】:

    标签: neural-network classification sigmoid


    【解决方案1】:

    Sigmoid 总是在 [0,1] 中给出一个值,您需要对该值进行四舍五入,这意味着如果阈值高于阈值则修复阈值,否则为 1。

    【讨论】:

    • 知道了。我认为sigmoid将给出0或1.所以它给出0到1之间。有没有办法在模型中设置一个阈值,如果预测值小于 0.5,则为 0,否则为 1。
    • 你可以使用round函数,如果小于阈值则为0.5,否则为0。
    • 你可以向我展示一段代码,其中使用圆函数吗? span>
    • np.argmax(Y_pred,axis=1) 这应该可以工作。
    猜你喜欢
    • 2017-05-15
    • 2021-05-27
    • 2017-10-08
    • 2013-07-14
    • 2019-02-05
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    相关资源
    最近更新 更多