python - 如何将 sigmoid 设置在 0 和 1 之间?
问题描述
我在keras中做了一个模型来预测垃圾邮件,最后一次激活是sigmoid,但是输出不完全在0到1之间
# define the model
model = Sequential()
model.add(Embedding(vocab_size, 30, input_length=max_length))
model.add(Flatten())
model.add(Dense(500, activation='relu'))
model.add(Dense(200, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(100, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# compile the model
model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy'])
预测示例:
sms = ["Hello whats your name"]
sms_proc = tokenizer.texts_to_sequences(sms)
sms_proc = pad_sequences(sms_proc, maxlen=10, padding='post')
pred = (model.predict(sms_proc)).item()
print(pred)
输出:
1.9402589257477842e-10
测试:
print(pred > 0)
print(pred < 1)
输出:
True
True
我知道这个数字“1.9402589257477842e-10”介于 0 和 1 之间,但是否可以在没有符号的情况下显示它?例如:0.0000001