我正在尝试在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%,因此,如果我有一些错误的分类,我想至少应该对此不太确定。