From 35759e53af7cb5cc96489bc00dd44884bb9423c2 Mon Sep 17 00:00:00 2001 From: tangyunxiang <546783735@qq.com> Date: Wed, 12 Jul 2023 11:02:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9EEspNet2=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86=E6=8C=87=E5=AF=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PyTorch/built-in/audio/ESPnet2_for_PyTorch/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/PyTorch/built-in/audio/ESPnet2_for_PyTorch/README.md b/PyTorch/built-in/audio/ESPnet2_for_PyTorch/README.md index d902084258..9ccca8c254 100644 --- a/PyTorch/built-in/audio/ESPnet2_for_PyTorch/README.md +++ b/PyTorch/built-in/audio/ESPnet2_for_PyTorch/README.md @@ -152,6 +152,14 @@ ESPNet是一套基于E2E的开源工具包,可进行语音识别等任务。 --fp32开启FP32模式 + - 在线推理 + + 启动在线推理 + + ``` + bash ./test/train_eval_1p.sh + ``` + 3. 启动训练后,日志输出路径为:/egs2/aishell/asr1/nohup.out ,该日志中会打印二级日志(各个stage日志)的相对路径。 如:stage 11 的日志路径为:“exp/asr_train_asr_conformer_raw_zh_char_sp/train.log” -- Gitee From 2fc4137267c3168f5b569631fba128a2cfd978ff Mon Sep 17 00:00:00 2001 From: tangyunxiang <546783735@qq.com> Date: Wed, 12 Jul 2023 11:02:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=B0=E5=A2=9EEspNet2=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ESPnet2_for_PyTorch/test/train_eval_1p.sh | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 PyTorch/built-in/audio/ESPnet2_for_PyTorch/test/train_eval_1p.sh diff --git a/PyTorch/built-in/audio/ESPnet2_for_PyTorch/test/train_eval_1p.sh b/PyTorch/built-in/audio/ESPnet2_for_PyTorch/test/train_eval_1p.sh new file mode 100644 index 0000000000..32857db6fe --- /dev/null +++ b/PyTorch/built-in/audio/ESPnet2_for_PyTorch/test/train_eval_1p.sh @@ -0,0 +1,119 @@ +#!/bin/bash +source ./test/env_npu.sh + +#当前路径,不需要修改 +cur_path=`pwd` +cur_path_last_dirname=${cur_path##*/} +if [ x"${cur_path_last_dirname}" == x"test" ];then + test_path_dir=${cur_path} + cd .. + cur_path=`pwd` +else + test_path_dir=${cur_path}/test +fi + +#集合通信参数,不需要修改 +export RANK_SIZE=1 + + +#网络名称,同目录名称,需要模型审视修改 +Network="ESPnet2_for_PyTorch" + +#混合精度 +use_amp=true + +# 指定训练所使用的npu device卡id, 暂不支持修改 +device_id=0 + +for para in $* +do + if [[ $para == --use_amp* ]];then + use_amp=`echo ${para#*=}` + fi + if [[ $para == --fp32 ]];then + fp32=`echo ${para#*=}` + export ALLOW_FP32=True + fi +done + +export USE_AMP=${use_amp} + +# 校验是否指定了device_id,分动态分配device_id与手动指定device_id,此处不需要修改 +if [ ${device_id} ];then + export ASCEND_DEVICE_ID=${device_id} + echo "device id is ${ASCEND_DEVICE_ID}" +else + "[Error] device id must be config" + exit 1 +fi + +#创建DeviceID输出目录,不需要修改 +if [ -d $test_path_dir/output/${ASCEND_DEVICE_ID} ];then + rm -rf $test_path_dir/output/$ASCEND_DEVICE_ID + mkdir -p $test_path_dir/output/$ASCEND_DEVICE_ID +else + mkdir -p $test_path_dir/output/$ASCEND_DEVICE_ID +fi + +#################启动训练脚本################# + +# 必要参数替换配置文件 +cd $cur_path/egs2/aishell/asr1 + +# 修改配置文件超参 +conf_file=$cur_path/egs2/aishell/asr1/conf/tuning/train_asr_conformer.yaml +lm_conf_file=$cur_path/egs2/aishell/asr1/conf/tuning/train_lm_transformer.yaml +ori_epoch=`cat $conf_file | grep max_epoch:` +ori_batch_bins=`cat $conf_file | grep batch_bins:` +ori_lr=`cat $conf_file | grep lr:` +ori_use_amp=`cat $conf_file | grep use_amp:` +lm_ori_use_amp=`cat $lm_conf_file | grep use_amp:` +sed -i "s|$ori_epoch|max_epoch: 50|g" $conf_file +sed -i "s|$ori_batch_bins|batch_bins: 4000000|g" $conf_file +sed -i "s|$ori_lr| lr: 0.0005|g" $conf_file +sed -i "s|$ori_use_amp|use_amp: $use_amp|g" $conf_file +sed -i "s|$lm_ori_use_amp|use_amp: $use_amp|g" $lm_conf_file +start_time=$(date +%s) + +nohup bash run.sh \ + --stage 12 \ + --use_lm true \ + --ngpu 1 & +wait + +result=$cur_path/egs2/aishell/asr1/exp/asr_train_asr_conformer_raw_zh_char_sp/RESULTS.md + +##################获取推理数据################ +#推理结束时间,不需要修改 +end_time=$(date +%s) +e2e_time=$(( $end_time - $start_time )) + +#结果打印,不需要修改 +echo "------------------ Final result ------------------" +#输出性能FPS,需要模型审视修改 +# 计算公式为:数据集数量 / 训练总时间 +FPS=`awk 'BEGIN{printf "%.2f",(104765 / '$TOTAL_TIME')}'` + +#输出训练精度,需要模型审视修改 +dev_accuracy=`grep "valid.acc.ave/dev" ${result} | tail -n 1 | awk -F "|" '{print$5}'` +test_accuracy=`grep "valid.acc.ave/test" ${result} | tail -n 1 | awk -F "|" '{print$5}'` + +#打印,不需要修改 +echo "Final Performance waves/sec : $FPS" + +#打印,不需要修改 +echo "Final Validate Accuracy : ${test_accuracy}" +echo "E2E Validating Duration sec : $e2e_time" + +#获取性能数据,不需要修改 +#吞吐量 +ActualFPS=${FPS} + +#关键信息打印到${CaseName}.log中,不需要修改 +echo "Network = ${Network}" > ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log +echo "RankSize = ${RANK_SIZE}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log +echo "DeviceType = ${DeviceType}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log +echo "CaseName = ${CaseName}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log +echo "ActualFPS = ${ActualFPS}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log +echo "ValidateAccuracy = ${test_accuracy}" >> $test_path_dir/output/$ASCEND_DEVICE_ID/${CaseName}.log +echo "E2EValidatingTime = ${e2e_time}" >> ${test_path_dir}/output/$ASCEND_DEVICE_ID/${CaseName}.log \ No newline at end of file -- Gitee