Bootstrap

把分类模型生成的数据(label/pred)写入csv

一、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)
;