Keras model.predict(X_test, batch_size=32,verbose=1)和model.predict_classes(X_test,verbose=1)函数的解析

model.predict(X_test, batch_size=32,verbose=1)

参数解析:

X_test:为即将要预测的测试集

batch_size:为一次性输入多少张图片给网络进行训练,最后输入图片的总数为测试集的个数

verbose:1代表显示进度条,0不显示进度条,默认为0

返回值:每个测试集的所预测的各个类别的概率

示例:

各个类别评估(X_test为10000个数据集)
print("[INFO] evaluating network...")
predictions = model.predict(X_test, batch_size=32) #显示每一个测试集各个类别的概率,这个值的shape为(10000,10)
print(predictions)
print(predictions.shape)

结果:

Keras model.predict(X_test, batch_size=32,verbose=1)和model.predict_classes(X_test,verbose=1)函数的解析

可以看出model.predict(X_test, batch_size=32)的返回值为每个测试集预测的10个类别的概率

所以最后输出的shape为(10000,10)

如果想要获得每个测试集预测的类别,而不是每个类别的概率,可以如下操作

import numpy as np
predictions = model.predict(X_test, batch_size=32)
y_test_pred = np.argmax(predictions, axis=1)

注意:axis值为你要转换的行(axis=1从每一行找出最大数值的下标,
axis=0从每一列找出最大数值的下标),而且输出为一维数据,即每个样本对应一个类别值

np.argmax(x,axis=1)函数,默认axis=1

axis=1从x的每一行中找出最大数值的下标,(这里下标代表类别)
axis=0从x的每一列找出最大数值的下标

model.predict_classes(X_test, batch_size=32, verbose=1)函数

参数解析:

X_test:为即将要预测的测试集

batch_size:为一次性输入多少张图片给网络进行训练,最后输入图片的总数为测试集的个数

verbose:1代表显示进度条,0不显示进度条,默认为0

返回值:每个测试集的预测的类别(即下标)

等价于上面的两组语句

Original: https://blog.csdn.net/hgnuxc_1993/article/details/118391706
Author: 无尽的沉默
Title: Keras model.predict(X_test, batch_size=32,verbose=1)和model.predict_classes(X_test,verbose=1)函数的解析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/496092/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球