使用Keras获得二进制分类的输出置信度

时间:2019-09-25 13:29:43

标签: python tensorflow keras classification

我正在尝试在Keras中建立一个非常浅的二进制分类网络,以便区分两个域。

我想获得每个预测的概率(或某种置信度得分)。

我从这样的文件夹中读取数据:

train_it = datagen.flow_from_directory('sim2city/train/', class_mode='binary', batch_size=32)
val_it = datagen.flow_from_directory('sim2city/val/', class_mode='binary', batch_size=32)
test_it = datagen.flow_from_directory('sim2city/test/', class_mode='binary', batch_size=1)

我没有做任何其他处理。 我试图训练5个这样的时间:

model = keras.Sequential([
      keras.layers.Flatten(input_shape=(256, 256, 3)),
      keras.layers.Dense(32, activation=tf.nn.relu),
    #keras.layers.Dense(16, activation=tf.nn.relu),
      keras.layers.Dense(2, activation=tf.nn.softmax)
   ])

然后

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
predict = model.predict_generator(test_it, steps=NumImgs)

,但是结果的值为0/1或1/0,介于两者之间的值不能用作置信度得分。另外,对我来说,这很奇怪,因为总准确度不是100%,因此,如果我有一些错误的分类,我想至少应该对此不太确定。

0 个答案:

没有答案