使用argparse
模块来定义和解析命令行参数
创建一个ArgumentParser
对象
parser = argparse.ArgumentParser()
训练的轮数,每批图像的大小,更新模型参数之前累积梯度的次数,模型定义文件的路径。
parser.add_argument("--epochs", type=int, default=100, help="number of epochs") #训练次数
parser.add_argument("--batch_size", type=int, default=1, help="size of each image batch") #batch的大小
parser.add_argument("--gradient_accumulations", type=int, default=2, help="number of gradient accums before step")#在每一步(更新模型参数)之前累积梯度的次数”
parser.add_argument("--model_def", type=str, default="config/yolov3.cfg", help="path to model definition file") #模型的配置文件
数据配置文件的路径,从预训练的模型权重开始训练,生成批次数据时使用的CPU线程数。
parser.add_argument("--data_config", type=str, default="config/coco.data", help="path to data config file") #数据的配置文件
parser.add_argument("--pretrained_weights", type=str, help="if specified starts from checkpoint model") #预训练文件
parser.add_argument("--n_cpu", type=int, default=0, help="number of cpu threads to use during batch generation")#数据加载过程中应使用的CPU线程数。
每张图像的尺寸,每隔多少个epoch保存一次模型权重,每隔多少个epoch在验证集上进行一次评估,每十批计算一次平均精度(mAP),是否允许多尺度训练,
parser.add_argument("--img_size", type=int, default=416, help="size of each image dimension")
parser.add_argument("--checkpoint_interval", type=int, default=20, help="interval between saving model weights")#隔多少个epoch保存一次模型权重
parser.add_argument("--evaluation_interval", type=int, default=20, help="interval evaluations on validation set")#多少个epoch进行一次验证集的验证
parser.add_argument("--compute_map", default=False, help="if True computes mAP every tenth batch")#
parser.add_argument("--multiscale_training", default=True, help="allow for multi-scale training")
使用parse_args
方法解析命令行参数
opt = parser.parse_args()
使用TensorFlow 2.0以上版本中的tf.summary
模块创建日志记录器(Logger)
import tensorflow as tf # 导入TensorFlow库,并简写为tf
# 确保使用的是TensorFlow 2.0或更高版本
class Logger(object):
def __init__(self, log_dir):
"""
Create a