一、Keras测试模型
keras的模型测试,
# 1. 首先导入预训练的模型
model = load_model('train_model.h5')
batch_size = 128
test_datagen = ImageDataGenerator(1./255.)
# 2. 打包数据集
test_generator = test_datagen.flow_from_directory(
'../datasets3_PES_CelebA/datasets_2022_CGNet/valid/',
shuffle=False,
target_size=(224, 224),
batch_size=batch_size,
class_mode='binary')
# 3. 分类测试,二分类的模型
pre_y = model.predict(test_generator) # 每个测试集的所预测的各个类别的概率[[-0.5191, -0.0740], ]
y_test_pred = np.argmax(pre_y, axis=1) # axis=1从每一行找出最大数值的下标,输出为一维数据,即每个样本对应一个类别值
print(pre_y)
print(y_test_pred)
# 保存预测最大的值
def storFile(data, fileName):
data = list(map(lambda x:[x], data))
with open(fileName, 'w', newline='') as f:
mywrite = csv.writer(f)
for i in data:
mywrite.writerow(i)
data = [max(i) for i in pre_y]
storFile(data, './CVE.csv')
二、Pytorch模型,输出的所有结果都保存到列表中
# 数据类似于:['1', '1', '1', '1', '1', '1', '1', '0', '1']
# 1. 先设置一个空列表
pred_ = []
# 2. 得到模型的预测结果
'''伪代码 实际就是模型的测试输出
for i in batch_size:
pred = model(data)
'''
# 3. 结果保存到列表中
pred_.append(pred)
# 4. 把列表按行存放到csv文件里
with open('./test.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
for row in pred_:
writer.writerow(row)