S形函数输出
Sigmoid function output
我有以下神经网络模型。
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。
我有以下神经网络模型。
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。