Я пытаюсь построить действительно мелкую двоичную классификационную сеть в Керасе, чтобы провести различие между двумя доменами.
Я хочу получить вероятность (или некоторую оценку достоверности) для каждого прогноза.
Я читаю данные из папок следующим образом:
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%, поэтому, если она имеет какие-то неправильные классификации, я думаю, по крайней мере, она не должна быть в этом так уверена.