Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
hapi
提交
c3d26b92
H
hapi
项目概览
PaddlePaddle
/
hapi
通知
11
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
7
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hapi
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
7
合并请求
7
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c3d26b92
编写于
4月 01, 2020
作者:
D
dengkaipeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix type
上级
eee4fc01
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
14 deletion
+15
-14
tsm/README.md
tsm/README.md
+12
-11
tsm/main.py
tsm/main.py
+1
-1
tsm/modeling.py
tsm/modeling.py
+2
-2
未找到文件。
tsm/README.md
浏览文件 @
c3d26b92
...
@@ -35,7 +35,8 @@ TSM模型是将Temporal Shift Module插入到ResNet网络中构建的视频分
...
@@ -35,7 +35,8 @@ TSM模型是将Temporal Shift Module插入到ResNet网络中构建的视频分
#### 代码下载及环境变量设置
#### 代码下载及环境变量设置
克隆代码库到本地,并设置`PYTHONPATH`环境变量
克隆代码库到本地,并设置`PYTHONPATH`环境变量
```shell
```bash
git clone https://github.com/PaddlePaddle/hapi
git clone https://github.com/PaddlePaddle/hapi
cd hapi
cd hapi
export PYTHONPATH=$PYTHONPATH:`pwd`
export PYTHONPATH=$PYTHONPATH:`pwd`
...
@@ -56,7 +57,7 @@ TSM的训练数据采用由DeepMind公布的Kinetics-400动作识别数据集。
...
@@ -56,7 +57,7 @@ TSM的训练数据采用由DeepMind公布的Kinetics-400动作识别数据集。
`main.py`
脚本参数可通过如下命令查询
`main.py`
脚本参数可通过如下命令查询
```
shell
```
bash
python main.py
--help
python main.py
--help
```
```
...
@@ -64,14 +65,14 @@ python main.py --help
...
@@ -64,14 +65,14 @@ python main.py --help
使用如下方式进行单卡训练:
使用如下方式进行单卡训练:
```
shell
```
bash
export
CUDA_VISIBLE_DEVICES
=
0
export
CUDA_VISIBLE_DEVICES
=
0
python main.py
--data
=
<path/to/dataset>
--batch_size
=
16
python main.py
--data
=
<path/to/dataset>
--batch_size
=
16
```
```
使用如下方式进行多卡训练:
使用如下方式进行多卡训练:
```
shell
```
bash
CUDA_VISIBLE_DEVICES
=
0,1 python main.py
--data
=
<path/to/dataset>
--batch_size
=
8
CUDA_VISIBLE_DEVICES
=
0,1 python main.py
--data
=
<path/to/dataset>
--batch_size
=
8
```
```
...
@@ -81,14 +82,14 @@ CUDA_VISIBLE_DEVICES=0,1 python main.py --data=<path/to/dataset> --batch_size=8
...
@@ -81,14 +82,14 @@ CUDA_VISIBLE_DEVICES=0,1 python main.py --data=<path/to/dataset> --batch_size=8
使用如下方式进行单卡训练:
使用如下方式进行单卡训练:
```
shell
```
bash
export
CUDA_VISIBLE_DEVICES
=
0
export
CUDA_VISIBLE_DEVICES
=
0
python main.py
--data
=
<path/to/dataset>
--batch_size
=
16
-d
python main.py
--data
=
<path/to/dataset>
--batch_size
=
16
-d
```
```
使用如下方式进行多卡训练:
使用如下方式进行多卡训练:
```
shell
```
bash
CUDA_VISIBLE_DEVICES
=
0,1 python main.py
--data
=
<path/to/dataset>
--batch_size
=
8
-d
CUDA_VISIBLE_DEVICES
=
0,1 python main.py
--data
=
<path/to/dataset>
--batch_size
=
8
-d
```
```
...
@@ -100,14 +101,14 @@ CUDA_VISIBLE_DEVICES=0,1 python main.py --data=<path/to/dataset> --batch_size=8
...
@@ -100,14 +101,14 @@ CUDA_VISIBLE_DEVICES=0,1 python main.py --data=<path/to/dataset> --batch_size=8
1.
自动下载Paddle发布的
[
TSM-ResNet50
](
https://paddlemodels.bj.bcebos.com/hapi/tsm_resnet50.pdparams
)
权重评估
1.
自动下载Paddle发布的
[
TSM-ResNet50
](
https://paddlemodels.bj.bcebos.com/hapi/tsm_resnet50.pdparams
)
权重评估
```
```
bash
python main.py --data<path/to/dataset> --eval_only
python main.py
--data
=
<path/to/dataset>
--eval_only
```
```
2.
加载checkpoint进行精度评估
2.
加载checkpoint进行精度评估
```
```
bash
python main.py --data<path/to/dataset> --eval_only --weights=tsm_checkpoint/final
python main.py
--data
=
<path/to/dataset>
--eval_only
--weights
=
tsm_checkpoint/final
```
```
#### 评估精度
#### 评估精度
...
@@ -116,7 +117,7 @@ python main.py --data<path/to/dataset> --eval_only --weights=tsm_checkpoint/fina
...
@@ -116,7 +117,7 @@ python main.py --data<path/to/dataset> --eval_only --weights=tsm_checkpoint/fina
|Top-1|Top-5|
|Top-1|Top-5|
|:-:|:-:|
|:-:|:-:|
|76
.5%|98.0
%|
|76
%|98
%|
## 参考论文
## 参考论文
...
...
tsm/main.py
浏览文件 @
c3d26b92
...
@@ -92,7 +92,7 @@ def main():
...
@@ -92,7 +92,7 @@ def main():
if
FLAGS
.
eval_only
:
if
FLAGS
.
eval_only
:
if
FLAGS
.
weights
is
not
None
:
if
FLAGS
.
weights
is
not
None
:
model
.
load
(
FLAGS
.
weights
)
model
.
load
(
FLAGS
.
weights
,
reset_optimizer
=
True
)
model
.
evaluate
(
model
.
evaluate
(
val_dataset
,
val_dataset
,
...
...
tsm/modeling.py
浏览文件 @
c3d26b92
...
@@ -191,8 +191,8 @@ def _tsm_resnet(num_layers, seg_num=8, num_classes=400, pretrained=True):
...
@@ -191,8 +191,8 @@ def _tsm_resnet(num_layers, seg_num=8, num_classes=400, pretrained=True):
model
=
TSM_ResNet
(
num_layers
,
seg_num
,
num_classes
)
model
=
TSM_ResNet
(
num_layers
,
seg_num
,
num_classes
)
if
pretrained
:
if
pretrained
:
assert
num_layers
in
pretrain_infos
.
keys
(),
\
assert
num_layers
in
pretrain_infos
.
keys
(),
\
"TSM
_
ResNet{} do not have pretrained weights now, "
\
"TSM
-
ResNet{} do not have pretrained weights now, "
\
"pretrained should be set as False"
"pretrained should be set as False"
.
format
(
num_layers
)
weight_path
=
get_weights_path
(
*
(
pretrain_infos
[
num_layers
]))
weight_path
=
get_weights_path
(
*
(
pretrain_infos
[
num_layers
]))
assert
weight_path
.
endswith
(
'.pdparams'
),
\
assert
weight_path
.
endswith
(
'.pdparams'
),
\
"suffix of weight must be .pdparams"
"suffix of weight must be .pdparams"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录