Keras图像百分比预测

2024-05-05 15:37:40 发布

您现在位置:Python中文网/ 问答频道 /正文

通过这个代码,我只得到一个类的单一图像预测。 classes = model.predict(images)print(classes) 结果:[[0。0000100000000000000.]] 有没有可能得到每个类的百分比预测,例如得到前5个类?在

是,我可以共享模型-编辑2018年5月11日

model = Sequential()
model.add(Conv2D(8, (3, 3),  input_shape=(32, 32,3)))
model.add(Activation('relu'))
model.add(Conv2D(16, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(64))
model.add(Activation("relu"))
model.add(Dropout(0.25))

model.add(Dense(20))
model.add(Activation("softmax"))

model.compile(loss='categorical_crossentropy',
              optimizer='Adam',
              metrics=['accuracy'])

model.fit_generator(train_batches,steps_per_epoch=140,validation_data=valid_batches,validation_steps=40,epochs=1000,verbose=2)
model.save_weights('weights.h5')

对测试数据集进行预测

^{pr2}$

结果:

array([[0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00,
        0.0000000e+00, 0.0000000e+00],
       [6.6144131e-16, 0.0000000e+00, 1.4948792e-07, ..., 8.4376645e-15,
        0.0000000e+00, 0.0000000e+00],
       [0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00,
        0.0000000e+00, 0.0000000e+00],
       ...,
       [0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00,
        0.0000000e+00, 0.0000000e+00],
       [0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00,
        0.0000000e+00, 0.0000000e+00],
       [0.0000000e+00, 0.0000000e+00, 1.8744760e-06, ..., 0.0000000e+00,
        0.0000000e+00, 0.0000000e+00]], dtype=float32)

以及我的单一图像预测

img = image.load_img('C:/Users/Kinga/Desktop/user_test/2.jpg', target_size=(32, 32))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
images = np.vstack([x])
classes = model.predict(images)
print(classes)

[[0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]

Tags: 图像addimgsizemodelbatchesactivationpredict