【发布时间】:2016-11-06 15:16:53
【问题描述】:
我已经在 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'])
我还可以使用预测图像类
y_pred = model.predict_classes(img, 1, verbose=0)
但是y_pred 的输出始终是二进制的。使用predict_proba 和predict 时似乎也是这种情况。我的输出是这种形式
[[ 1. 0. 0. 0.]]
[[ 0. 1. 0. 0.]]
这行得通,但我希望每个分类都有一个概率百分比,例如
[[ 0.8 0.1 0.1 0.4]]
我如何在 Keras 中获得这个?
【问题讨论】:
标签: python neural-network deep-learning conv-neural-network keras