tôi đã đào tạo thành công một mô hình đơn giản trong Keras để phân loại hình ảnh:Lấy một dự đoán trong Keras
model = Sequential()
model.add(Convolution2D(32, 3, 3, border_mode='valid', input_shape=(img_channels, img_rows, img_cols),
activation='relu', name='conv1_1'))
model.add(Convolution2D(32, 3, 3, activation='relu', name='conv1_2'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Convolution2D(64, 3, 3, border_mode='valid', activation='relu', name='conv2_1'))
model.add(Convolution2D(64, 3, 3, activation='relu', name='conv2_2'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(nb_classes, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
Tôi cũng có thể dự đoán các lớp hình ảnh sử dụng
y_pred = model.predict_classes(img, 1, verbose=0)
Tuy nhiên đầu ra của y_pred
luôn là nhị phân. Điều này cũng có vẻ là trường hợp khi sử dụng predict_proba
và predict
. kết quả đầu ra của tôi là theo hình thức này
[[ 1. 0. 0. 0.]]
[[ 0. 1. 0. 0.]]
này hoạt động OK, nhưng tôi muốn có một tỷ lệ xác suất cho mỗi phân loại, ví dụ
[[ 0.8 0.1 0.1 0.4]]
Làm thế nào để có được điều này trong Keras?