Windows环境:
执行train程序结束之后,会在屏幕打印下列信息:
我们在进行多轮训练时,性能信息不能及时保存,键入以下代码,可自动保存
#放在引入模块后面
sys.stdout = open('train_output.txt', 'w')
#这两行代码放在最后面
sys.stdout.close()
sys.stdout = sys.__stdout__ # 恢复标准输出
sys.stdout = open('train_output.txt', 'w')这个代码放在train.py第一行
这行代码意思是将屏幕打印信息保存到train_output.txt
sys.stdout.close()#不关闭内存可能会泄露
sys.stdout = sys.__stdout__ # 恢复标准输出
这个两行代码放在最后面,代码意思是关闭输出,恢复标准输出
最后保存在train_output.txt
Linux环境:
代码功能简介:将yolov5训练结束后的打印在屏幕的性能信息如mpa@0.5,mpa@0.5-0.95,P,R等训练日志保存在相应的resultsi.txt文件中。
而且本程序采用的是os.system(),只要将对应的.py文件修改即可适用各种大模型,不限于yolov5
每次训练结果都保存在新文件夹中,新文件夹包括每一次训练性能指标
使用方法:假如本程序名为multrain.py,在终端运行python mnltrain.py即可开始训练并保存性能信息致 -> resultsi.txt
代码如下:
import os
"""
time:2024.9.23
author:wisdom
introduction:将yolov5训练结束后的打印在屏幕的性能信息如mpa@0.5,mpa@0.5-0.95,P,R等训练日志保存在相应的resultsi.txt文件中。
而且本程序采用的是os.system(),只要将对应的.py文件修改即可适用各种大模型,不限于yolov5
"""
#确保此程序与train.py处于同一文件夹
#环境:Linux
#使用os.system运行终端命令
# 训练日志保存地址
folder_path = '/root/yolov5_zdy/allResultsLog'
# 计算文件夹中的文件夹数量
folder_count = len([name for name in os.listdir(folder_path)
if os.path.isdir(os.path.join(folder_path, name))])
# 如果数量为i,新建一个名为resultsLog(i+1)的文件夹
new_folder_name = f'resultsLog{folder_count + 1}'
new_folder_path = os.path.join(folder_path, new_folder_name)
# 检查是否已存在同名文件夹
if not os.path.exists(new_folder_path):
os.makedirs(new_folder_path)
print(f'Created new folder: {new_folder_path}')
else:
print(f'Folder already exists: {new_folder_path}')
for i in range(3):
print("zdy-^u^----------------------->第{}轮训练开始<-----------------------^u^-zdy".format(i+1))
#os.system("python train.py >> ./allResultsLog/new_folder_path/results{}.txt 2>&1".format(i+1))
os.system("python train.py >> {}/results{}.txt 2>&1".format(new_folder_path,i+1)) #将对应的.py文件修改即可适用各种大模型
print("yyh-^o^----------------------->第{}轮训练结束<-----------------------^o^-yyh".format(i+1))
终端运行结果如下:
results.txt文件内容展示: