Sigmoid函数输出



我有如下的神经网络模型。

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。但是我得到了一些十进制的值。我的理解错了吗?

Sigmoid总是在[0,1]中给出一个值,你需要将值四舍五入,这意味着固定一个阈值,如果它高于阈值,则1否则为0。

最新更新