在Keras中,测试样本的评估是这样进行的
score = model.evaluate(testx, testy, verbose=1)
这不会返回预测值。有一个方法predict
可以返回预测值。
model.predict(testx, verbose=1)
返回[
[.57 .21 .21]
[.19 .15 .64]
[.23 .16 .60]
.....
]
testy
经过独热编码后,其值如下所示。
testy
经过独热编码后,其值如下所示。
[
[1 0 0]
[0 0 1]
[0 0 1]
]
如何处理预测值,例如testy
,或将预测值转换为独热编码?
注意: 我的模型长这样
# setup the model, add layers
model = Sequential()
model.add(Conv2D(32, kernel_size=(3,3), activation='relu', input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(classes, activation='softmax'))
# compile model
model.compile(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.Adadelta(), metrics=['accuracy'])
# fit the model
model.fit(trainx, trainy, batch_size=batch_size, epochs=iterations, verbose=1, validation_data=(testx, testy))