已合并
[西南交通大学][高校贡献][Pytorch][EfficientNet-B1训练]-初次提交 #939
AtomGit-Bot创建于 2022年6月28日
[西南交通大学][高校贡献][Pytorch][EfficientNet-B1训练]-初次提交 #939
已合并
从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 device | 71 | #Make model replica operate on the current device |
| 72 | ddp = torch.nn.parallel.DistributedDataParallel | 72 | ddp = torch.nn.parallel.DistributedDataParallel |
| @@ -98,7 +98,7 @@ FPS=${FPS%,*} | |||
| 98 | echo "Final Performance images/sec : $FPS" | 98 | echo "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}'` |
| 102 | top1_err=`echo ${top1_err%,*}` | 102 | top1_err=`echo ${top1_err%,*}` |
| 103 | train_accuracy=$(echo "100-${top1_err}"|bc) | 103 | train_accuracy=$(echo "100-${top1_err}"|bc) |
| 104 | # 打印,不需要修改 | 104 | # 打印,不需要修改 |
| @@ -135,4 +135,4 @@ echo "ActualFPS = ${ActualFPS}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${ | |||
| 135 | echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 135 | echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 136 | echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 136 | echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 137 | echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 137 | echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 138 | -echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 138 | +echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| @@ -86,7 +86,7 @@ FPS=${FPS%,*} | |||
| 86 | echo "Final Performance images/sec : $FPS" | 86 | echo "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}'` |
| 90 | top1_err=`echo ${top1_err%,*}` | 90 | top1_err=`echo ${top1_err%,*}` |
| 91 | train_accuracy=$(echo "100-${top1_err}"|bc) | 91 | train_accuracy=$(echo "100-${top1_err}"|bc) |
| 92 | # 打印,不需要修改 | 92 | # 打印,不需要修改 |
| @@ -123,4 +123,4 @@ echo "ActualFPS = ${ActualFPS}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${ | |||
| 123 | echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 123 | echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 124 | echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 124 | echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 125 | echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 125 | echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 126 | -echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 126 | +echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| @@ -94,7 +94,7 @@ FPS=${FPS%,*} | |||
| 94 | echo "Final Performance images/sec : $FPS" | 94 | echo "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}'` |
| 98 | top1_err=`echo ${top1_err%,*}` | 98 | top1_err=`echo ${top1_err%,*}` |
| 99 | train_accuracy=$(echo "100-${top1_err}"|bc) | 99 | train_accuracy=$(echo "100-${top1_err}"|bc) |
| 100 | # 打印,不需要修改 | 100 | # 打印,不需要修改 |
| @@ -131,4 +131,4 @@ echo "ActualFPS = ${ActualFPS}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${ | |||
| 131 | echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 131 | echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 132 | echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 132 | echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 133 | echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 133 | echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 134 | -echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 134 | +echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| @@ -88,7 +88,7 @@ FPS=${FPS%,*} | |||
| 88 | echo "Final Performance images/sec : $FPS" | 88 | echo "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}'` |
| 92 | top1_err=`echo ${top1_err%,*}` | 92 | top1_err=`echo ${top1_err%,*}` |
| 93 | train_accuracy=$(echo "100-${top1_err}"|bc) | 93 | train_accuracy=$(echo "100-${top1_err}"|bc) |
| 94 | # 打印,不需要修改 | 94 | # 打印,不需要修改 |
| @@ -125,4 +125,4 @@ echo "ActualFPS = ${ActualFPS}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${ | |||
| 125 | echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 125 | echo "TrainingTime = ${TrainingTime}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 126 | echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 126 | echo "TrainAccuracy = ${train_accuracy}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 127 | echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 127 | echo "ActualLoss = ${ActualLoss}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| 128 | -echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log | 128 | +echo "E2ETrainingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log |
| @@ -30,6 +30,8 @@ import pycls.core.trainer as trainer | |||
| 30 | from pycls.core.config import cfg | 30 | from pycls.core.config import cfg |
| 31 | import argparse,sys,os,torch | 31 | import argparse,sys,os,torch |
| 32 | import torch | 32 | import torch |
| 33 | +if torch.__version__ >= '1.8': | ||
| 34 | + import torch_npu | ||
| 33 | 35 | ||
| 34 | def init_process_group(proc_rank, world_size, device_type="npu", port="29588"): | 36 | def init_process_group(proc_rank, world_size, device_type="npu", port="29588"): |
| 35 | """Initializes the default process group.""" | 37 | """Initializes the default process group.""" |