PaddlePadddle2.0蝴蝶分类项目验证集结果比对
之前的项目分别在Paddle2.0下用Resnet101和VGG16网络实现了蝴蝶分类任务,并且根据训练好的模型生成了含有200张图片验证集的标签文件,现在想做的是将生成的txt文件和标准答案的标签文件进行比对,查看模型对于验证集的预测效果,并将预测准确率通过百分比形式返回。
之前项目链接为:
VGG16实现蝴蝶分类:
https://blog.csdn.net/weixin_43848436/article/details/115051394
Resnet101实现蝴蝶分类:
https://blog.csdn.net/weixin_43848436/article/details/114669737
结果比对程序见下:
# 按行读取答案标签文件
import codecs
f = codecs.open('Butterfly20_result_label answer.txt', mode='r', encoding='utf-8') # 打开txt文件,以‘utf-8’编码读取
line = f.readline() # 以行的形式进行读取文件
list1 = []
while line:
a = line.split('.')
b = a[0] # 这是选取需要读取的位数
list1.append(b) # 将其添加在列表之中
line = f.readline()
f.close()
# 将读取到的字符串列表转换为整型列表
list2 = []
for i in list1:
x = int(i)
list2.append(x)
# 读取模型预测标签文件
f = codecs.open('result from Resnet.txt', mode='r', encoding='utf-8') # 打开txt文件,以‘utf-8’编码读取
line = f.readline() # 以行的形式进行读取文件
list1 = []
while line:
a = line.split('.')
b = a[0] # 这是选取需要读取的位数
list1.append(b) # 将其添加在列表之中
line = f.readline()
f.close()
list3 = []
for i in list1:
x = int(i)
list3.append(x)
# list2,list3转换为可以加减的格式
import numpy as np
list2new = np.array(list2)
list3new = np.array(list3)
list4 = list2new-list3new
# 记录预测正确的标签个数
count = 0
for number in list4:
if number == 0:
count = count + 1
# 输出百分比结果
result = count/2
print("模型预测正确率为:{:.2f}%".format(result))
结果为:
只需要将txt文件的地址改动即可,应用到自己项目的时候可用上面的程序。