已合并
[西南交通大学][高校贡献][Pytorch][EfficientNet-B1训练]-初次提交 #939
AtomGit-Bot创建于 2022年6月28日
[西南交通大学][高校贡献][Pytorch][EfficientNet-B1训练]-初次提交 #939
已合并
AtomGit-Bot创建于 2022年6月28日
refs/pull/939/head合入到master
6 个文件变更+11-9
@@ -66,7 +66,7 @@ def setup_model(device_type="npu"):
66 model = model.to(cur_device)66 model = model.to(cur_device)
67 ema = deepcopy(model)67 ema = deepcopy(model)
68 optimizer = optim.construct_optimizer(model)68 optimizer = optim.construct_optimizer(model)
69- model, optimizer = amp.initialize(model, optimizer, opt_level="O2", loss_scale=128)69+ model, optimizer = amp.initialize(model, optimizer, opt_level="O2", loss_scale='dynamic')
70 if cfg.NUM_GPUS > 1:70 if cfg.NUM_GPUS > 1:
71 #Make model replica operate on the current device71 #Make model replica operate on the current device
72 ddp = torch.nn.parallel.DistributedDataParallel72 ddp = torch.nn.parallel.DistributedDataParallel
@@ -98,7 +98,7 @@ FPS=${FPS%,*}
98echo "Final Performance images/sec : $FPS"98echo "Final Performance images/sec : $FPS"
99 99 
100# 输出训练精度,需要模型审视修改100# 输出训练精度,需要模型审视修改
101-top1_err=`grep 'train_epoch' ${test_path_dir}/output/${ASCEND_DEVICE_ID}/train_${ASCEND_DEVICE_ID}.log|awk '{print $25}'|awk 'END {print}'`101+top1_err=`grep 'test_ema_epoch' ${test_path_dir}/output/${ASCEND_DEVICE_ID}/train_${ASCEND_DEVICE_ID}.log|awk '{print $23}'|awk 'END {print}'`
102top1_err=`echo ${top1_err%,*}`102top1_err=`echo ${top1_err%,*}`
103train_accuracy=$(echo "100-${top1_err}"|bc)103train_accuracy=$(echo "100-${top1_err}"|bc)
104# 打印,不需要修改104# 打印,不需要修改
@@ -135,4 +135,4 @@ echo "ActualFPS = ${ActualFPS}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${
135echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log135echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
136echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log136echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
137echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log137echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
138-echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log138+echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
@@ -86,7 +86,7 @@ FPS=${FPS%,*}
86echo "Final Performance images/sec : $FPS"86echo "Final Performance images/sec : $FPS"
87 87 
88# 输出训练精度,需要模型审视修改88# 输出训练精度,需要模型审视修改
89-top1_err=`grep 'train_epoch' ${test_path_dir}/output/${ASCEND_DEVICE_ID}/train_${ASCEND_DEVICE_ID}.log|awk '{print $25}'|awk 'END {print}'`89+top1_err=`grep 'test_ema_epoch' ${test_path_dir}/output/${ASCEND_DEVICE_ID}/train_${ASCEND_DEVICE_ID}.log|awk '{print $23}'|awk 'END {print}'`
90top1_err=`echo ${top1_err%,*}`90top1_err=`echo ${top1_err%,*}`
91train_accuracy=$(echo "100-${top1_err}"|bc)91train_accuracy=$(echo "100-${top1_err}"|bc)
92# 打印,不需要修改92# 打印,不需要修改
@@ -123,4 +123,4 @@ echo "ActualFPS = ${ActualFPS}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${
123echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log123echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
124echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log124echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
125echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log125echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
126-echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log126+echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
@@ -94,7 +94,7 @@ FPS=${FPS%,*}
94echo "Final Performance images/sec : $FPS"94echo "Final Performance images/sec : $FPS"
95 95 
96# 输出训练精度,需要模型审视修改96# 输出训练精度,需要模型审视修改
97-top1_err=`grep 'train_epoch' ${test_path_dir}/output/${ASCEND_DEVICE_ID}/train_${ASCEND_DEVICE_ID}.log|awk '{print $25}'|awk 'END {print}'`97+top1_err=`grep 'test_ema_epoch' ${test_path_dir}/output/${ASCEND_DEVICE_ID}/train_${ASCEND_DEVICE_ID}.log|awk '{print $23}'|awk 'END {print}'`
98top1_err=`echo ${top1_err%,*}`98top1_err=`echo ${top1_err%,*}`
99train_accuracy=$(echo "100-${top1_err}"|bc)99train_accuracy=$(echo "100-${top1_err}"|bc)
100# 打印,不需要修改100# 打印,不需要修改
@@ -131,4 +131,4 @@ echo "ActualFPS = ${ActualFPS}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${
131echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log131echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
132echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log132echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
133echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log133echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
134-echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log134+echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
@@ -88,7 +88,7 @@ FPS=${FPS%,*}
88echo "Final Performance images/sec : $FPS"88echo "Final Performance images/sec : $FPS"
89 89 
90# 输出训练精度,需要模型审视修改90# 输出训练精度,需要模型审视修改
91-top1_err=`grep 'train_epoch' ${test_path_dir}/output/${ASCEND_DEVICE_ID}/train_${ASCEND_DEVICE_ID}.log|awk '{print $25}'|awk 'END {print}'`91+top1_err=`grep 'test_ema_epoch' ${test_path_dir}/output/${ASCEND_DEVICE_ID}/train_${ASCEND_DEVICE_ID}.log|awk '{print $23}'|awk 'END {print}'`
92top1_err=`echo ${top1_err%,*}`92top1_err=`echo ${top1_err%,*}`
93train_accuracy=$(echo "100-${top1_err}"|bc)93train_accuracy=$(echo "100-${top1_err}"|bc)
94# 打印,不需要修改94# 打印,不需要修改
@@ -125,4 +125,4 @@ echo "ActualFPS = ${ActualFPS}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${
125echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log125echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
126echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log126echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
127echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log127echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
128-echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log128+echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log
@@ -30,6 +30,8 @@ import pycls.core.trainer as trainer
30from pycls.core.config import cfg30from pycls.core.config import cfg
31import argparse,sys,os,torch31import argparse,sys,os,torch
32import torch32import torch
33+if torch.__version__ >= '1.8':
34+ import torch_npu
33 35 
34def init_process_group(proc_rank, world_size, device_type="npu", port="29588"):36def init_process_group(proc_rank, world_size, device_type="npu", port="29588"):
35 """Initializes the default process group."""37 """Initializes the default process group."""