相关疑难解决方法(0)

在Keras获得预测

我在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'])
Run Code Online (Sandbox Code Playgroud)

我也可以使用预测图像类

y_pred = model.predict_classes(img, 1, verbose=0)
Run Code Online (Sandbox Code Playgroud)

但是输出y_pred总是二进制的.使用predict_proba和时似乎也是如此predict.我的输出是这种形式

[[ 1.  0.  0.  0.]]
[[ 0.  1.  0.  0.]]
Run Code Online (Sandbox Code Playgroud)

这样可行,但我希望每个分类都有一个概率百分比

[[ 0.8  0.1  0.1  0.4]]
Run Code Online (Sandbox Code Playgroud)

我如何在Keras得到这个?

python neural-network deep-learning conv-neural-network keras

9
推荐指数
1
解决办法
1908
查看次数