diff --git a/train.py b/train.py index 3563d416cbf6c8c90bd73fa09aa436a5ddc26bb2..cc09307cf136948fcac65c7ef4d6308ef4a94ab3 100644 --- a/train.py +++ b/train.py @@ -30,12 +30,17 @@ if __name__ == "__main__": #---------------------------------------------------------------------# anchors_path = 'model_data/yolo_anchors.txt' anchors_mask = [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - #------------------------------------------------------------------------------------------------------# - # 权值文件请看README,百度网盘下载。数据的预训练权重对不同数据集是通用的,因为特征是通用的 + #----------------------------------------------------------------------------------------------------------------------------# + # 权值文件请看README,百度网盘下载。数据的预训练权重对不同数据集是通用的,因为特征是通用的。 # 预训练权重对于99%的情况都必须要用,不用的话权值太过随机,特征提取效果不明显,网络训练的结果也不会好。 - # 训练自己的数据集时提示维度不匹配正常,预测的东西都不一样了自然维度不匹配 + # # 如果想要断点续练就将model_path设置成logs文件夹下已经训练的权值文件。 - #------------------------------------------------------------------------------------------------------# + # 当model_path = ''的时候不加载整个模型的权值。 + # + # 此处使用的是整个模型的权重,因此是在train.py进行加载的。 + # 如果想要让模型从0开始训练,则设置model_path = '',下面的Freeze_Train = Fasle,此时从0开始训练,且没有冻结主干的过程。 + # 一般来讲,从0开始训练效果会很差,因为权值太过随机,特征提取效果不明显。 + #----------------------------------------------------------------------------------------------------------------------------# model_path = 'model_data/yolo4_weights.pth' #------------------------------------------------------# # 输入的shape大小,一定要是32的倍数 @@ -211,4 +216,4 @@ if __name__ == "__main__": for epoch in range(start_epoch, end_epoch): fit_one_epoch(model_train, model, yolo_loss, loss_history, optimizer, epoch, epoch_step, epoch_step_val, gen, gen_val, end_epoch, Cuda) - lr_scheduler.step() \ No newline at end of file + lr_scheduler.step()