From 5fc538d55131fb6b04b9060d70ec9f6465e61bc6 Mon Sep 17 00:00:00 2001 From: huangjun12 <12272008@bjtu.edu.cn> Date: Wed, 29 Apr 2020 05:50:52 +0000 Subject: [PATCH] refine README and details of bmn model --- examples/bmn/README.md | 22 ++++++++++++++++++++-- examples/bmn/bmn.yaml | 9 ++++----- examples/bmn/eval.py | 10 +++++----- examples/bmn/predict.py | 17 ++++++++++------- examples/bmn/train.py | 2 +- 5 files changed, 40 insertions(+), 20 deletions(-) diff --git a/examples/bmn/README.md b/examples/bmn/README.md index 4ff0551..4182409 100644 --- a/examples/bmn/README.md +++ b/examples/bmn/README.md @@ -4,7 +4,7 @@ ## 内容 - [模型简介](#模型简介) -- [代码结构](#代码结构) +- [代码获取](#代码获取) - [数据准备](#数据准备) - [模型训练](#模型训练) - [模型评估](#模型评估) @@ -22,7 +22,21 @@ BMN Overview

-## 代码结构 +## 代码获取 + +### 代码下载及环境变量设置 + + 克隆代码库到本地,并设置`PYTHONPATH`环境变量 + + ```bash + git clone https://github.com/PaddlePaddle/hapi + cd hapi + export PYTHONPATH=`pwd`:$PYTHONPATH + cd examples/bmn + ``` + + +### 代码结构 ``` ├── bmn.yaml # 网络配置文件,快速配置参数 ├── run.sh # 快速运行脚本,可直接开始多卡训练 @@ -74,6 +88,8 @@ BMN的训练数据采用ActivityNet1.3提供的数据集,我们提供了处理 - 上述程序会将运行结果保存在`--output_path`参数指定的文件夹下,默认为output/EVAL/BMN\_results;测试结果保存在`--result_path`参数指定的文件夹下,默认为evaluate\_results。 +- 暂不支持多卡评估。 + - 注:评估时可能会出现loss为nan的情况。这是由于评估时用的是单个样本,可能存在没有iou>0.6的样本,所以为nan,对最终的评估结果没有影响。 @@ -108,6 +124,8 @@ BMN的训练数据采用ActivityNet1.3提供的数据集,我们提供了处理 - 上述程序会将运行结果保存在`--output_path`参数指定的文件夹下,默认为output/INFER/BMN\_results;测试结果保存在`--result_path`参数指定的文件夹下,默认为predict\_results。 +- 暂不支持多卡预测。 + ## 参考论文 diff --git a/examples/bmn/bmn.yaml b/examples/bmn/bmn.yaml index 7964f92..1cc8995 100644 --- a/examples/bmn/bmn.yaml +++ b/examples/bmn/bmn.yaml @@ -15,7 +15,6 @@ TRAIN: batch_size: 4 num_workers: 4 use_shuffle: True - device: "gpu" learning_rate: 0.001 learning_rate_decay: 0.1 lr_decay_iter: 4200 @@ -28,14 +27,14 @@ TEST: subset: "validation" batch_size: 1 num_workers: 1 - output_path: "output/EVAL/BMN_results" - result_path: "evaluate_results" + output_path: "./output/EVAL/BMN_results" + result_path: "./evaluate_results" INFER: subset: "test" batch_size: 1 num_workers: 1 filelist: './infer.list' - output_path: "output/INFER/BMN_results" - result_path: "predict_results" + output_path: "./output/INFER/BMN_results" + result_path: "./predict_results" diff --git a/examples/bmn/eval.py b/examples/bmn/eval.py index 2b129d1..c8d4f26 100644 --- a/examples/bmn/eval.py +++ b/examples/bmn/eval.py @@ -54,18 +54,18 @@ def parse_args(): '--weights', type=str, default=None, - help='weight path, None to automatically download weights provided by Paddle.' + help='weight path. None to automatically download weights provided by Paddle.' ) parser.add_argument( '--output_path', type=str, - default="output/EVAL/BMN_results", - help='output dir path, default to use output/EVAL/BMN_results') + default=None, + help='output dir path. None to use config file setting.') parser.add_argument( '--result_path', type=str, - default="evaluate_results/", - help='output dir path after post processing, default to use ./evaluate_results/' + default=None, + help='output dir path after post processing. None to use config file setting.' ) parser.add_argument( '--log_interval', diff --git a/examples/bmn/predict.py b/examples/bmn/predict.py index 6e0ae99..b984c06 100644 --- a/examples/bmn/predict.py +++ b/examples/bmn/predict.py @@ -46,7 +46,10 @@ def parse_args(): default='bmn.yaml', help='path to config file of model') parser.add_argument( - '--device', type=str, default='GPU', help='default use gpu.') + '--device', + type=str, + default='gpu', + help='gpu or cpu, default use gpu.') parser.add_argument( '--weights', type=str, @@ -56,18 +59,18 @@ def parse_args(): parser.add_argument( '--filelist', type=str, - default="infer.list", - help='infer file list, default to use ./infer.list') + default=None, + help='infer file list, None to use config file setting.') parser.add_argument( '--output_path', type=str, - default="output/INFER/BMN_results", - help='output dir path, default to use output/INFER/BMN_results') + default=None, + help='output dir path, None to use config file setting.') parser.add_argument( '--result_path', type=str, - default="predict_results/", - help='output dir path after post processing, default to use ./predict_results/' + default=None, + help='output dir path after post processing, None to use config file setting.' ) parser.add_argument( '--log_interval', diff --git a/examples/bmn/train.py b/examples/bmn/train.py index c6bcdef..1e2bf44 100644 --- a/examples/bmn/train.py +++ b/examples/bmn/train.py @@ -49,7 +49,7 @@ def parse_args(): parser.add_argument( '--learning_rate', type=float, - default=0.001, + default=None, help='learning rate use for training. None to use config file setting.') parser.add_argument( '--resume', -- GitLab