在进行NLP相关工作时候,发现很多人都默认最后几批模型效果是最好的,然而实际可能会有所不同,起初为了找出那个模型准确率更高,我的想法是把文件夹下面所有模型文件循环跑一下test文件然后找出准确率最高的模型,于是乎就有了下面代码,请各位大佬批评指正:
import os
path = 'D:/vscode'
acc_list=[] #储存每个模型的准确率
def get_key1(dct,value):
return list(filter(lambda k :dct[k] == value,dct))
#读取目录下模型进入循环,每次输出acc写入字典中
for root,dirs,files in os.walk(path):
for file in files:
if os.path.splitext(file)[1] == '.bin':
acc = test('./model/'+files) #测试函数
acc_list.append((file,acc))
acc_dic = dict(acc_list)
maxv = acc_dic.values(0)
for v in acc_dic.values():
if v > maxv:
maxv = v
best_model_name = get_key1(acc_dic,maxv)
print(best_model_name)