Upload 41 files
Browse files- ntu120_xsub/b_2/20240918_150455.log +0 -0
- ntu120_xsub/b_2/20240918_150455.log.json +0 -0
- ntu120_xsub/b_2/b_2.py +98 -0
- ntu120_xsub/b_2/best_pred.pkl +3 -0
- ntu120_xsub/b_2/best_top1_acc_epoch_137.pth +3 -0
- ntu120_xsub/bm/20231228_223220.log +0 -0
- ntu120_xsub/bm/20231228_223220.log.json +0 -0
- ntu120_xsub/bm/best_pred.pkl +3 -0
- ntu120_xsub/bm/best_top1_acc_epoch_148.pth +3 -0
- ntu120_xsub/bm/bm.py +95 -0
- ntu120_xsub/j_1/20231218_143057.log +0 -0
- ntu120_xsub/j_1/20231218_143057.log.json +0 -0
- ntu120_xsub/j_1/best_pred.pkl +3 -0
- ntu120_xsub/j_1/best_top1_acc_epoch_141.pth +3 -0
- ntu120_xsub/j_1/j_1.py +95 -0
- ntu120_xsub/j_2/20231227_203528.log +0 -0
- ntu120_xsub/j_2/20231227_203528.log.json +0 -0
- ntu120_xsub/j_2/best_pred.pkl +3 -0
- ntu120_xsub/j_2/best_top1_acc_epoch_144.pth +3 -0
- ntu120_xsub/j_2/j_2.py +98 -0
- ntu120_xsub/jm/20231228_223230.log +0 -0
- ntu120_xsub/jm/20231228_223230.log.json +0 -0
- ntu120_xsub/jm/best_pred.pkl +3 -0
- ntu120_xsub/jm/best_top1_acc_epoch_148.pth +3 -0
- ntu120_xsub/jm/jm.py +95 -0
- ntu120_xsub/k_1/20231218_144051.log +0 -0
- ntu120_xsub/k_1/20231218_144051.log.json +0 -0
- ntu120_xsub/k_1/best_pred.pkl +3 -0
- ntu120_xsub/k_1/best_top1_acc_epoch_150.pth +3 -0
- ntu120_xsub/k_1/k_1.py +98 -0
- ntu120_xsub/k_2/20231227_203500.log +0 -0
- ntu120_xsub/k_2/20231227_203500.log.json +0 -0
- ntu120_xsub/k_2/best_pred.pkl +3 -0
- ntu120_xsub/k_2/best_top1_acc_epoch_142.pth +3 -0
- ntu120_xsub/k_2/k_2.py +98 -0
- ntu120_xsub/km/20231229_220026.log +0 -0
- ntu120_xsub/km/20231229_220026.log.json +0 -0
- ntu120_xsub/km/best_pred.pkl +3 -0
- ntu120_xsub/km/best_top1_acc_epoch_146.pth +3 -0
- ntu120_xsub/km/km.py +95 -0
- ntu120_xsub/ntu120_xsub_ensemble.py +65 -0
ntu120_xsub/b_2/20240918_150455.log
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/b_2/20240918_150455.log.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/b_2/b_2.py
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
modality = 'b'
|
| 2 |
+
graph = 'nturgb+d'
|
| 3 |
+
work_dir = './work_dirs/test_prototype/ntu120_xsub/b_2'
|
| 4 |
+
model = dict(
|
| 5 |
+
type='RecognizerGCN_7_1_1',
|
| 6 |
+
backbone=dict(
|
| 7 |
+
type='GCN_7_1_1',
|
| 8 |
+
tcn_ms_cfg=[(3, 1), (3, 2), (3, 3), (3, 4), ('max', 3), '1x1'],
|
| 9 |
+
graph_cfg=dict(
|
| 10 |
+
layout='nturgb+d',
|
| 11 |
+
mode='random',
|
| 12 |
+
num_filter=8,
|
| 13 |
+
init_off=0.04,
|
| 14 |
+
init_std=0.02)),
|
| 15 |
+
cls_head=dict(type='SimpleHead_7_4_3', num_classes=120, in_channels=384))
|
| 16 |
+
dataset_type = 'PoseDataset'
|
| 17 |
+
ann_file = '/data1/hao.wang/reproducation/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl'
|
| 18 |
+
train_pipeline = [
|
| 19 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 20 |
+
dict(type='RandomRot', theta=0.2),
|
| 21 |
+
dict(type='Spatial_Flip', dataset='nturgb+d', p=0.5),
|
| 22 |
+
dict(type='GenSkeFeat', feats=['b']),
|
| 23 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 24 |
+
dict(type='FormatGCNInput'),
|
| 25 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 26 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 27 |
+
]
|
| 28 |
+
val_pipeline = [
|
| 29 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 30 |
+
dict(type='GenSkeFeat', feats=['b']),
|
| 31 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 32 |
+
dict(type='FormatGCNInput'),
|
| 33 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 34 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 35 |
+
]
|
| 36 |
+
test_pipeline = [
|
| 37 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 38 |
+
dict(type='GenSkeFeat', feats=['b']),
|
| 39 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 40 |
+
dict(type='FormatGCNInput'),
|
| 41 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 42 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 43 |
+
]
|
| 44 |
+
data = dict(
|
| 45 |
+
videos_per_gpu=16,
|
| 46 |
+
workers_per_gpu=4,
|
| 47 |
+
test_dataloader=dict(videos_per_gpu=1),
|
| 48 |
+
train=dict(
|
| 49 |
+
type='PoseDataset',
|
| 50 |
+
ann_file=
|
| 51 |
+
'/data1/hao.wang/reproducation/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 52 |
+
pipeline=[
|
| 53 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 54 |
+
dict(type='RandomRot', theta=0.2),
|
| 55 |
+
dict(type='Spatial_Flip', dataset='nturgb+d', p=0.5),
|
| 56 |
+
dict(type='GenSkeFeat', feats=['b']),
|
| 57 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 58 |
+
dict(type='FormatGCNInput'),
|
| 59 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 60 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 61 |
+
],
|
| 62 |
+
split='xsub_train'),
|
| 63 |
+
val=dict(
|
| 64 |
+
type='PoseDataset',
|
| 65 |
+
ann_file=
|
| 66 |
+
'/data1/hao.wang/reproducation/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 67 |
+
pipeline=[
|
| 68 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 69 |
+
dict(type='GenSkeFeat', feats=['b']),
|
| 70 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 71 |
+
dict(type='FormatGCNInput'),
|
| 72 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 73 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 74 |
+
],
|
| 75 |
+
split='xsub_val'),
|
| 76 |
+
test=dict(
|
| 77 |
+
type='PoseDataset',
|
| 78 |
+
ann_file=
|
| 79 |
+
'/data1/hao.wang/reproducation/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 80 |
+
pipeline=[
|
| 81 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 82 |
+
dict(type='GenSkeFeat', feats=['b']),
|
| 83 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 84 |
+
dict(type='FormatGCNInput'),
|
| 85 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 86 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 87 |
+
],
|
| 88 |
+
split='xsub_val'))
|
| 89 |
+
optimizer = dict(
|
| 90 |
+
type='SGD', lr=0.025, momentum=0.9, weight_decay=0.0005, nesterov=True)
|
| 91 |
+
optimizer_config = dict(grad_clip=None)
|
| 92 |
+
lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False)
|
| 93 |
+
total_epochs = 150
|
| 94 |
+
checkpoint_config = dict(interval=1)
|
| 95 |
+
evaluation = dict(interval=1, metrics=['top_k_accuracy'])
|
| 96 |
+
log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')])
|
| 97 |
+
dist_params = dict(backend='nccl')
|
| 98 |
+
gpu_ids = range(0, 1)
|
ntu120_xsub/b_2/best_pred.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c91f52155366957683157822c456c44b4a3deb733dc795876b6839deca21d2e1
|
| 3 |
+
size 37301266
|
ntu120_xsub/b_2/best_top1_acc_epoch_137.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:88113dd9b6ac68935b01253b63c550a2b378690e523cec8b653641922366ebf5
|
| 3 |
+
size 33657446
|
ntu120_xsub/bm/20231228_223220.log
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/bm/20231228_223220.log.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/bm/best_pred.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:808bc13fd5cc33065f7f3dd71a41a516fe491dbf8efa237b28ccf1a52a8ede70
|
| 3 |
+
size 37300681
|
ntu120_xsub/bm/best_top1_acc_epoch_148.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:234939d055d1be92185ce98bdbe070ffe0edc32e30a5d4f815d6f2f1f816a3e5
|
| 3 |
+
size 33657318
|
ntu120_xsub/bm/bm.py
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
modality = 'bm'
|
| 2 |
+
graph = 'nturgb+d'
|
| 3 |
+
work_dir = './work_dirs/test_prototype/ntu120_xsub/bm'
|
| 4 |
+
model = dict(
|
| 5 |
+
type='RecognizerGCN_7_1_1',
|
| 6 |
+
backbone=dict(
|
| 7 |
+
type='GCN_7_1_1',
|
| 8 |
+
tcn_ms_cfg=[(3, 1), (3, 2), (3, 3), (3, 4), ('max', 3), '1x1'],
|
| 9 |
+
graph_cfg=dict(
|
| 10 |
+
layout='nturgb+d',
|
| 11 |
+
mode='random',
|
| 12 |
+
num_filter=8,
|
| 13 |
+
init_off=0.04,
|
| 14 |
+
init_std=0.02)),
|
| 15 |
+
cls_head=dict(type='SimpleHead_7_4_3', num_classes=120, in_channels=384))
|
| 16 |
+
dataset_type = 'PoseDataset'
|
| 17 |
+
ann_file = '/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl'
|
| 18 |
+
train_pipeline = [
|
| 19 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 20 |
+
dict(type='RandomRot', theta=0.2),
|
| 21 |
+
dict(type='Spatial_Flip', dataset='nturgb+d', p=0.5),
|
| 22 |
+
dict(type='GenSkeFeat', feats=['bm']),
|
| 23 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 24 |
+
dict(type='FormatGCNInput'),
|
| 25 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 26 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 27 |
+
]
|
| 28 |
+
val_pipeline = [
|
| 29 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 30 |
+
dict(type='GenSkeFeat', feats=['bm']),
|
| 31 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 32 |
+
dict(type='FormatGCNInput'),
|
| 33 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 34 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 35 |
+
]
|
| 36 |
+
test_pipeline = [
|
| 37 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 38 |
+
dict(type='GenSkeFeat', feats=['bm']),
|
| 39 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 40 |
+
dict(type='FormatGCNInput'),
|
| 41 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 42 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 43 |
+
]
|
| 44 |
+
data = dict(
|
| 45 |
+
videos_per_gpu=16,
|
| 46 |
+
workers_per_gpu=4,
|
| 47 |
+
test_dataloader=dict(videos_per_gpu=1),
|
| 48 |
+
train=dict(
|
| 49 |
+
type='PoseDataset',
|
| 50 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 51 |
+
pipeline=[
|
| 52 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 53 |
+
dict(type='RandomRot', theta=0.2),
|
| 54 |
+
dict(type='Spatial_Flip', dataset='nturgb+d', p=0.5),
|
| 55 |
+
dict(type='GenSkeFeat', feats=['bm']),
|
| 56 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 57 |
+
dict(type='FormatGCNInput'),
|
| 58 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 59 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 60 |
+
],
|
| 61 |
+
split='xsub_train'),
|
| 62 |
+
val=dict(
|
| 63 |
+
type='PoseDataset',
|
| 64 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 65 |
+
pipeline=[
|
| 66 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 67 |
+
dict(type='GenSkeFeat', feats=['bm']),
|
| 68 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 69 |
+
dict(type='FormatGCNInput'),
|
| 70 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 71 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 72 |
+
],
|
| 73 |
+
split='xsub_val'),
|
| 74 |
+
test=dict(
|
| 75 |
+
type='PoseDataset',
|
| 76 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 77 |
+
pipeline=[
|
| 78 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 79 |
+
dict(type='GenSkeFeat', feats=['bm']),
|
| 80 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 81 |
+
dict(type='FormatGCNInput'),
|
| 82 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 83 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 84 |
+
],
|
| 85 |
+
split='xsub_val'))
|
| 86 |
+
optimizer = dict(
|
| 87 |
+
type='SGD', lr=0.025, momentum=0.9, weight_decay=0.0005, nesterov=True)
|
| 88 |
+
optimizer_config = dict(grad_clip=None)
|
| 89 |
+
lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False)
|
| 90 |
+
total_epochs = 150
|
| 91 |
+
checkpoint_config = dict(interval=1)
|
| 92 |
+
evaluation = dict(interval=1, metrics=['top_k_accuracy'])
|
| 93 |
+
log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')])
|
| 94 |
+
dist_params = dict(backend='nccl')
|
| 95 |
+
gpu_ids = range(0, 1)
|
ntu120_xsub/j_1/20231218_143057.log
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/j_1/20231218_143057.log.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/j_1/best_pred.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a34a9013bd061a2951ab99ef97203f4bc55417d001e44f8eb633510da27a5355
|
| 3 |
+
size 37307285
|
ntu120_xsub/j_1/best_top1_acc_epoch_141.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:42bb9554a189ab3856da8a9ab92ac4cbf0dc307c868d242c1f77ca1853f1944a
|
| 3 |
+
size 35500454
|
ntu120_xsub/j_1/j_1.py
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
modality = 'j'
|
| 2 |
+
graph = 'nturgb+d'
|
| 3 |
+
work_dir = './work_dirs/test_prototype/ntu120_xsub/j_1'
|
| 4 |
+
model = dict(
|
| 5 |
+
type='RecognizerGCN_7_1_1',
|
| 6 |
+
backbone=dict(
|
| 7 |
+
type='GCN_7_1_2',
|
| 8 |
+
tcn_ms_cfg=[(3, 1), (3, 2), (3, 3), (3, 4), ('max', 3), '1x1'],
|
| 9 |
+
graph_cfg=dict(
|
| 10 |
+
layout='nturgb+d',
|
| 11 |
+
mode='random',
|
| 12 |
+
num_filter=8,
|
| 13 |
+
init_off=0.04,
|
| 14 |
+
init_std=0.02)),
|
| 15 |
+
cls_head=dict(type='SimpleHead_7_4_2', num_classes=120, in_channels=384))
|
| 16 |
+
dataset_type = 'PoseDataset'
|
| 17 |
+
ann_file = '/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl'
|
| 18 |
+
train_pipeline = [
|
| 19 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 20 |
+
dict(type='RandomRot', theta=0.2),
|
| 21 |
+
dict(type='Spatial_Flip', dataset='nturgb+d', p=0.5),
|
| 22 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 23 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 24 |
+
dict(type='FormatGCNInput'),
|
| 25 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 26 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 27 |
+
]
|
| 28 |
+
val_pipeline = [
|
| 29 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 30 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 31 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 32 |
+
dict(type='FormatGCNInput'),
|
| 33 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 34 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 35 |
+
]
|
| 36 |
+
test_pipeline = [
|
| 37 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 38 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 39 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 40 |
+
dict(type='FormatGCNInput'),
|
| 41 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 42 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 43 |
+
]
|
| 44 |
+
data = dict(
|
| 45 |
+
videos_per_gpu=16,
|
| 46 |
+
workers_per_gpu=4,
|
| 47 |
+
test_dataloader=dict(videos_per_gpu=1),
|
| 48 |
+
train=dict(
|
| 49 |
+
type='PoseDataset',
|
| 50 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 51 |
+
pipeline=[
|
| 52 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 53 |
+
dict(type='RandomRot', theta=0.2),
|
| 54 |
+
dict(type='Spatial_Flip', dataset='nturgb+d', p=0.5),
|
| 55 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 56 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 57 |
+
dict(type='FormatGCNInput'),
|
| 58 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 59 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 60 |
+
],
|
| 61 |
+
split='xsub_train'),
|
| 62 |
+
val=dict(
|
| 63 |
+
type='PoseDataset',
|
| 64 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 65 |
+
pipeline=[
|
| 66 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 67 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 68 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 69 |
+
dict(type='FormatGCNInput'),
|
| 70 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 71 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 72 |
+
],
|
| 73 |
+
split='xsub_val'),
|
| 74 |
+
test=dict(
|
| 75 |
+
type='PoseDataset',
|
| 76 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 77 |
+
pipeline=[
|
| 78 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 79 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 80 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 81 |
+
dict(type='FormatGCNInput'),
|
| 82 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 83 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 84 |
+
],
|
| 85 |
+
split='xsub_val'))
|
| 86 |
+
optimizer = dict(
|
| 87 |
+
type='SGD', lr=0.025, momentum=0.9, weight_decay=0.0005, nesterov=True)
|
| 88 |
+
optimizer_config = dict(grad_clip=None)
|
| 89 |
+
lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False)
|
| 90 |
+
total_epochs = 150
|
| 91 |
+
checkpoint_config = dict(interval=1)
|
| 92 |
+
evaluation = dict(interval=1, metrics=['top_k_accuracy'])
|
| 93 |
+
log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')])
|
| 94 |
+
dist_params = dict(backend='nccl')
|
| 95 |
+
gpu_ids = range(0, 1)
|
ntu120_xsub/j_2/20231227_203528.log
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/j_2/20231227_203528.log.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/j_2/best_pred.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f9b2d4e87efbcaac83761c906a3d859ff6da73e3c0dd1b4208aaf4e612c410c1
|
| 3 |
+
size 37295569
|
ntu120_xsub/j_2/best_top1_acc_epoch_144.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2e6768bd626c55f5ec17b8112126781bff1f5867a10e784b486af19ca14a4397
|
| 3 |
+
size 35500646
|
ntu120_xsub/j_2/j_2.py
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
modality = 'j'
|
| 2 |
+
graph = 'nturgb+d'
|
| 3 |
+
work_dir = './work_dirs/test_prototype/ntu120_xsub/j_2'
|
| 4 |
+
model = dict(
|
| 5 |
+
type='RecognizerGCN_7_1_1',
|
| 6 |
+
backbone=dict(
|
| 7 |
+
type='GCN_7_1_2',
|
| 8 |
+
tcn_ms_cfg=[(3, 1), (3, 2), (3, 3), (3, 4), ('max', 3), '1x1'],
|
| 9 |
+
graph_cfg=dict(
|
| 10 |
+
layout='nturgb+d',
|
| 11 |
+
mode='random',
|
| 12 |
+
num_filter=8,
|
| 13 |
+
init_off=0.04,
|
| 14 |
+
init_std=0.02)),
|
| 15 |
+
cls_head=dict(type='SimpleHead_7_4_2', num_classes=120, in_channels=384))
|
| 16 |
+
dataset_type = 'PoseDataset'
|
| 17 |
+
ann_file = '/data1/medical/hao.wang/reproduction/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl'
|
| 18 |
+
train_pipeline = [
|
| 19 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 20 |
+
dict(type='RandomRot', theta=0.2),
|
| 21 |
+
dict(type='Spatial_Flip', dataset='nturgb+d', p=0.5),
|
| 22 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 23 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 24 |
+
dict(type='FormatGCNInput'),
|
| 25 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 26 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 27 |
+
]
|
| 28 |
+
val_pipeline = [
|
| 29 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 30 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 31 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 32 |
+
dict(type='FormatGCNInput'),
|
| 33 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 34 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 35 |
+
]
|
| 36 |
+
test_pipeline = [
|
| 37 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 38 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 39 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 40 |
+
dict(type='FormatGCNInput'),
|
| 41 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 42 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 43 |
+
]
|
| 44 |
+
data = dict(
|
| 45 |
+
videos_per_gpu=16,
|
| 46 |
+
workers_per_gpu=4,
|
| 47 |
+
test_dataloader=dict(videos_per_gpu=1),
|
| 48 |
+
train=dict(
|
| 49 |
+
type='PoseDataset',
|
| 50 |
+
ann_file=
|
| 51 |
+
'/data1/medical/hao.wang/reproduction/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 52 |
+
pipeline=[
|
| 53 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 54 |
+
dict(type='RandomRot', theta=0.2),
|
| 55 |
+
dict(type='Spatial_Flip', dataset='nturgb+d', p=0.5),
|
| 56 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 57 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 58 |
+
dict(type='FormatGCNInput'),
|
| 59 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 60 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 61 |
+
],
|
| 62 |
+
split='xsub_train'),
|
| 63 |
+
val=dict(
|
| 64 |
+
type='PoseDataset',
|
| 65 |
+
ann_file=
|
| 66 |
+
'/data1/medical/hao.wang/reproduction/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 67 |
+
pipeline=[
|
| 68 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 69 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 70 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 71 |
+
dict(type='FormatGCNInput'),
|
| 72 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 73 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 74 |
+
],
|
| 75 |
+
split='xsub_val'),
|
| 76 |
+
test=dict(
|
| 77 |
+
type='PoseDataset',
|
| 78 |
+
ann_file=
|
| 79 |
+
'/data1/medical/hao.wang/reproduction/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 80 |
+
pipeline=[
|
| 81 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 82 |
+
dict(type='GenSkeFeat', feats=['j']),
|
| 83 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 84 |
+
dict(type='FormatGCNInput'),
|
| 85 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 86 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 87 |
+
],
|
| 88 |
+
split='xsub_val'))
|
| 89 |
+
optimizer = dict(
|
| 90 |
+
type='SGD', lr=0.025, momentum=0.9, weight_decay=0.0005, nesterov=True)
|
| 91 |
+
optimizer_config = dict(grad_clip=None)
|
| 92 |
+
lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False)
|
| 93 |
+
total_epochs = 150
|
| 94 |
+
checkpoint_config = dict(interval=1)
|
| 95 |
+
evaluation = dict(interval=1, metrics=['top_k_accuracy'])
|
| 96 |
+
log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')])
|
| 97 |
+
dist_params = dict(backend='nccl')
|
| 98 |
+
gpu_ids = range(0, 1)
|
ntu120_xsub/jm/20231228_223230.log
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/jm/20231228_223230.log.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/jm/best_pred.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:505f1b3dd85f06c4bdd1d0866c6af9d702d798f16dcaa83e75bec75ad86c6f38
|
| 3 |
+
size 37303711
|
ntu120_xsub/jm/best_top1_acc_epoch_148.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ac6a32805a8fe2c3836908bf1a688ff02d2496bbb5dfc1e9c4ace45a9545de05
|
| 3 |
+
size 35500518
|
ntu120_xsub/jm/jm.py
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
modality = 'jm'
|
| 2 |
+
graph = 'nturgb+d'
|
| 3 |
+
work_dir = './work_dirs/test_prototype/ntu120_xsub/jm'
|
| 4 |
+
model = dict(
|
| 5 |
+
type='RecognizerGCN_7_1_1',
|
| 6 |
+
backbone=dict(
|
| 7 |
+
type='GCN_7_1_2',
|
| 8 |
+
tcn_ms_cfg=[(3, 1), (3, 2), (3, 3), (3, 4), ('max', 3), '1x1'],
|
| 9 |
+
graph_cfg=dict(
|
| 10 |
+
layout='nturgb+d',
|
| 11 |
+
mode='random',
|
| 12 |
+
num_filter=8,
|
| 13 |
+
init_off=0.04,
|
| 14 |
+
init_std=0.02)),
|
| 15 |
+
cls_head=dict(type='SimpleHead_7_4_2', num_classes=120, in_channels=384))
|
| 16 |
+
dataset_type = 'PoseDataset'
|
| 17 |
+
ann_file = '/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl'
|
| 18 |
+
train_pipeline = [
|
| 19 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 20 |
+
dict(type='RandomRot', theta=0.2),
|
| 21 |
+
dict(type='Spatial_Flip', dataset='nturgb+d', p=0.5),
|
| 22 |
+
dict(type='GenSkeFeat', feats=['jm']),
|
| 23 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 24 |
+
dict(type='FormatGCNInput'),
|
| 25 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 26 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 27 |
+
]
|
| 28 |
+
val_pipeline = [
|
| 29 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 30 |
+
dict(type='GenSkeFeat', feats=['jm']),
|
| 31 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 32 |
+
dict(type='FormatGCNInput'),
|
| 33 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 34 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 35 |
+
]
|
| 36 |
+
test_pipeline = [
|
| 37 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 38 |
+
dict(type='GenSkeFeat', feats=['jm']),
|
| 39 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 40 |
+
dict(type='FormatGCNInput'),
|
| 41 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 42 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 43 |
+
]
|
| 44 |
+
data = dict(
|
| 45 |
+
videos_per_gpu=16,
|
| 46 |
+
workers_per_gpu=4,
|
| 47 |
+
test_dataloader=dict(videos_per_gpu=1),
|
| 48 |
+
train=dict(
|
| 49 |
+
type='PoseDataset',
|
| 50 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 51 |
+
pipeline=[
|
| 52 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 53 |
+
dict(type='RandomRot', theta=0.2),
|
| 54 |
+
dict(type='Spatial_Flip', dataset='nturgb+d', p=0.5),
|
| 55 |
+
dict(type='GenSkeFeat', feats=['jm']),
|
| 56 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 57 |
+
dict(type='FormatGCNInput'),
|
| 58 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 59 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 60 |
+
],
|
| 61 |
+
split='xsub_train'),
|
| 62 |
+
val=dict(
|
| 63 |
+
type='PoseDataset',
|
| 64 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 65 |
+
pipeline=[
|
| 66 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 67 |
+
dict(type='GenSkeFeat', feats=['jm']),
|
| 68 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 69 |
+
dict(type='FormatGCNInput'),
|
| 70 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 71 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 72 |
+
],
|
| 73 |
+
split='xsub_val'),
|
| 74 |
+
test=dict(
|
| 75 |
+
type='PoseDataset',
|
| 76 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 77 |
+
pipeline=[
|
| 78 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 79 |
+
dict(type='GenSkeFeat', feats=['jm']),
|
| 80 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 81 |
+
dict(type='FormatGCNInput'),
|
| 82 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 83 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 84 |
+
],
|
| 85 |
+
split='xsub_val'))
|
| 86 |
+
optimizer = dict(
|
| 87 |
+
type='SGD', lr=0.025, momentum=0.9, weight_decay=0.0005, nesterov=True)
|
| 88 |
+
optimizer_config = dict(grad_clip=None)
|
| 89 |
+
lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False)
|
| 90 |
+
total_epochs = 150
|
| 91 |
+
checkpoint_config = dict(interval=1)
|
| 92 |
+
evaluation = dict(interval=1, metrics=['top_k_accuracy'])
|
| 93 |
+
log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')])
|
| 94 |
+
dist_params = dict(backend='nccl')
|
| 95 |
+
gpu_ids = range(0, 1)
|
ntu120_xsub/k_1/20231218_144051.log
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/k_1/20231218_144051.log.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/k_1/best_pred.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:646dafb8f731662a9d4f1bba1c7053d368747e04f22d0a41e8ee981891660b55
|
| 3 |
+
size 37302175
|
ntu120_xsub/k_1/best_top1_acc_epoch_150.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:94b94e18bb25674831aada966c264e8aab30379a7a32013366b0d5a4a0e48a66
|
| 3 |
+
size 33657382
|
ntu120_xsub/k_1/k_1.py
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
modality = 'k'
|
| 2 |
+
graph = 'nturgb+d'
|
| 3 |
+
work_dir = './work_dirs/test_prototype/ntu120_xsub/k_1'
|
| 4 |
+
model = dict(
|
| 5 |
+
type='RecognizerGCN_7_1_1',
|
| 6 |
+
backbone=dict(
|
| 7 |
+
type='GCN_7_1_1',
|
| 8 |
+
tcn_ms_cfg=[(3, 1), (3, 2), (3, 3), (3, 4), ('max', 3), '1x1'],
|
| 9 |
+
graph_cfg=dict(
|
| 10 |
+
layout='nturgb+d',
|
| 11 |
+
mode='random',
|
| 12 |
+
num_filter=8,
|
| 13 |
+
init_off=0.04,
|
| 14 |
+
init_std=0.02)),
|
| 15 |
+
cls_head=dict(type='SimpleHead_7_4_1', num_classes=120, in_channels=384))
|
| 16 |
+
dataset_type = 'PoseDataset'
|
| 17 |
+
ann_file = '/data1/hao.wang/reproducation/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl'
|
| 18 |
+
train_pipeline = [
|
| 19 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 20 |
+
dict(type='RandomRot', theta=0.2),
|
| 21 |
+
dict(type='Part_Drop'),
|
| 22 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 23 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 24 |
+
dict(type='FormatGCNInput'),
|
| 25 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 26 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 27 |
+
]
|
| 28 |
+
val_pipeline = [
|
| 29 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 30 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 31 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 32 |
+
dict(type='FormatGCNInput'),
|
| 33 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 34 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 35 |
+
]
|
| 36 |
+
test_pipeline = [
|
| 37 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 38 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 39 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 40 |
+
dict(type='FormatGCNInput'),
|
| 41 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 42 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 43 |
+
]
|
| 44 |
+
data = dict(
|
| 45 |
+
videos_per_gpu=16,
|
| 46 |
+
workers_per_gpu=4,
|
| 47 |
+
test_dataloader=dict(videos_per_gpu=1),
|
| 48 |
+
train=dict(
|
| 49 |
+
type='PoseDataset',
|
| 50 |
+
ann_file=
|
| 51 |
+
'/data1/hao.wang/reproducation/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 52 |
+
pipeline=[
|
| 53 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 54 |
+
dict(type='RandomRot', theta=0.2),
|
| 55 |
+
dict(type='Part_Drop'),
|
| 56 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 57 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 58 |
+
dict(type='FormatGCNInput'),
|
| 59 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 60 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 61 |
+
],
|
| 62 |
+
split='xsub_train'),
|
| 63 |
+
val=dict(
|
| 64 |
+
type='PoseDataset',
|
| 65 |
+
ann_file=
|
| 66 |
+
'/data1/hao.wang/reproducation/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 67 |
+
pipeline=[
|
| 68 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 69 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 70 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 71 |
+
dict(type='FormatGCNInput'),
|
| 72 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 73 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 74 |
+
],
|
| 75 |
+
split='xsub_val'),
|
| 76 |
+
test=dict(
|
| 77 |
+
type='PoseDataset',
|
| 78 |
+
ann_file=
|
| 79 |
+
'/data1/hao.wang/reproducation/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 80 |
+
pipeline=[
|
| 81 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 82 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 83 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 84 |
+
dict(type='FormatGCNInput'),
|
| 85 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 86 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 87 |
+
],
|
| 88 |
+
split='xsub_val'))
|
| 89 |
+
optimizer = dict(
|
| 90 |
+
type='SGD', lr=0.025, momentum=0.9, weight_decay=0.0005, nesterov=True)
|
| 91 |
+
optimizer_config = dict(grad_clip=None)
|
| 92 |
+
lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False)
|
| 93 |
+
total_epochs = 150
|
| 94 |
+
checkpoint_config = dict(interval=1)
|
| 95 |
+
evaluation = dict(interval=1, metrics=['top_k_accuracy'])
|
| 96 |
+
log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')])
|
| 97 |
+
dist_params = dict(backend='nccl')
|
| 98 |
+
gpu_ids = range(0, 1)
|
ntu120_xsub/k_2/20231227_203500.log
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/k_2/20231227_203500.log.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/k_2/best_pred.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fed796450407ad22e238196b030139878ec6e859724cb10cbd7b157646b2a004
|
| 3 |
+
size 37302443
|
ntu120_xsub/k_2/best_top1_acc_epoch_142.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2958ce16195b792e225ded5daca8015ca112cca1f3c714002c62325ebe855e98
|
| 3 |
+
size 33657446
|
ntu120_xsub/k_2/k_2.py
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
modality = 'k'
|
| 2 |
+
graph = 'nturgb+d'
|
| 3 |
+
work_dir = './work_dirs/test_prototype/ntu120_xsub/k_2'
|
| 4 |
+
model = dict(
|
| 5 |
+
type='RecognizerGCN_7_1_1',
|
| 6 |
+
backbone=dict(
|
| 7 |
+
type='GCN_7_1_1',
|
| 8 |
+
tcn_ms_cfg=[(3, 1), (3, 2), (3, 3), (3, 4), ('max', 3), '1x1'],
|
| 9 |
+
graph_cfg=dict(
|
| 10 |
+
layout='nturgb+d',
|
| 11 |
+
mode='random',
|
| 12 |
+
num_filter=8,
|
| 13 |
+
init_off=0.04,
|
| 14 |
+
init_std=0.02)),
|
| 15 |
+
cls_head=dict(type='SimpleHead_7_4_1', num_classes=120, in_channels=384))
|
| 16 |
+
dataset_type = 'PoseDataset'
|
| 17 |
+
ann_file = '/data1/medical/hao.wang/reproduction/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl'
|
| 18 |
+
train_pipeline = [
|
| 19 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 20 |
+
dict(type='RandomRot', theta=0.2),
|
| 21 |
+
dict(type='Part_Drop'),
|
| 22 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 23 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 24 |
+
dict(type='FormatGCNInput'),
|
| 25 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 26 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 27 |
+
]
|
| 28 |
+
val_pipeline = [
|
| 29 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 30 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 31 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 32 |
+
dict(type='FormatGCNInput'),
|
| 33 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 34 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 35 |
+
]
|
| 36 |
+
test_pipeline = [
|
| 37 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 38 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 39 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 40 |
+
dict(type='FormatGCNInput'),
|
| 41 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 42 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 43 |
+
]
|
| 44 |
+
data = dict(
|
| 45 |
+
videos_per_gpu=16,
|
| 46 |
+
workers_per_gpu=4,
|
| 47 |
+
test_dataloader=dict(videos_per_gpu=1),
|
| 48 |
+
train=dict(
|
| 49 |
+
type='PoseDataset',
|
| 50 |
+
ann_file=
|
| 51 |
+
'/data1/medical/hao.wang/reproduction/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 52 |
+
pipeline=[
|
| 53 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 54 |
+
dict(type='RandomRot', theta=0.2),
|
| 55 |
+
dict(type='Part_Drop'),
|
| 56 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 57 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 58 |
+
dict(type='FormatGCNInput'),
|
| 59 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 60 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 61 |
+
],
|
| 62 |
+
split='xsub_train'),
|
| 63 |
+
val=dict(
|
| 64 |
+
type='PoseDataset',
|
| 65 |
+
ann_file=
|
| 66 |
+
'/data1/medical/hao.wang/reproduction/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 67 |
+
pipeline=[
|
| 68 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 69 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 70 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 71 |
+
dict(type='FormatGCNInput'),
|
| 72 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 73 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 74 |
+
],
|
| 75 |
+
split='xsub_val'),
|
| 76 |
+
test=dict(
|
| 77 |
+
type='PoseDataset',
|
| 78 |
+
ann_file=
|
| 79 |
+
'/data1/medical/hao.wang/reproduction/hongda.liu/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 80 |
+
pipeline=[
|
| 81 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 82 |
+
dict(type='GenSkeFeat', feats=['k']),
|
| 83 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 84 |
+
dict(type='FormatGCNInput'),
|
| 85 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 86 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 87 |
+
],
|
| 88 |
+
split='xsub_val'))
|
| 89 |
+
optimizer = dict(
|
| 90 |
+
type='SGD', lr=0.025, momentum=0.9, weight_decay=0.0005, nesterov=True)
|
| 91 |
+
optimizer_config = dict(grad_clip=None)
|
| 92 |
+
lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False)
|
| 93 |
+
total_epochs = 150
|
| 94 |
+
checkpoint_config = dict(interval=1)
|
| 95 |
+
evaluation = dict(interval=1, metrics=['top_k_accuracy'])
|
| 96 |
+
log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')])
|
| 97 |
+
dist_params = dict(backend='nccl')
|
| 98 |
+
gpu_ids = range(0, 1)
|
ntu120_xsub/km/20231229_220026.log
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/km/20231229_220026.log.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
ntu120_xsub/km/best_pred.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0f971592e23236123fa23675831724d42380fd450d1d649a8df83004fc9bfa82
|
| 3 |
+
size 37302765
|
ntu120_xsub/km/best_top1_acc_epoch_146.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:54ba5233029dffa7e9371ae9cea15438ecf4bcd273f00012041126f9aae81eb0
|
| 3 |
+
size 33657318
|
ntu120_xsub/km/km.py
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
modality = 'km'
|
| 2 |
+
graph = 'nturgb+d'
|
| 3 |
+
work_dir = './work_dirs/test_prototype/ntu120_xsub/km'
|
| 4 |
+
model = dict(
|
| 5 |
+
type='RecognizerGCN_7_1_1',
|
| 6 |
+
backbone=dict(
|
| 7 |
+
type='GCN_7_1_1',
|
| 8 |
+
tcn_ms_cfg=[(3, 1), (3, 2), (3, 3), (3, 4), ('max', 3), '1x1'],
|
| 9 |
+
graph_cfg=dict(
|
| 10 |
+
layout='nturgb+d',
|
| 11 |
+
mode='random',
|
| 12 |
+
num_filter=8,
|
| 13 |
+
init_off=0.04,
|
| 14 |
+
init_std=0.02)),
|
| 15 |
+
cls_head=dict(type='SimpleHead_7_4_1', num_classes=120, in_channels=384))
|
| 16 |
+
dataset_type = 'PoseDataset'
|
| 17 |
+
ann_file = '/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl'
|
| 18 |
+
train_pipeline = [
|
| 19 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 20 |
+
dict(type='RandomRot', theta=0.2),
|
| 21 |
+
dict(type='Part_Drop'),
|
| 22 |
+
dict(type='GenSkeFeat', feats=['km']),
|
| 23 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 24 |
+
dict(type='FormatGCNInput'),
|
| 25 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 26 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 27 |
+
]
|
| 28 |
+
val_pipeline = [
|
| 29 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 30 |
+
dict(type='GenSkeFeat', feats=['km']),
|
| 31 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 32 |
+
dict(type='FormatGCNInput'),
|
| 33 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 34 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 35 |
+
]
|
| 36 |
+
test_pipeline = [
|
| 37 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 38 |
+
dict(type='GenSkeFeat', feats=['km']),
|
| 39 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 40 |
+
dict(type='FormatGCNInput'),
|
| 41 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 42 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 43 |
+
]
|
| 44 |
+
data = dict(
|
| 45 |
+
videos_per_gpu=16,
|
| 46 |
+
workers_per_gpu=4,
|
| 47 |
+
test_dataloader=dict(videos_per_gpu=1),
|
| 48 |
+
train=dict(
|
| 49 |
+
type='PoseDataset',
|
| 50 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 51 |
+
pipeline=[
|
| 52 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 53 |
+
dict(type='RandomRot', theta=0.2),
|
| 54 |
+
dict(type='Part_Drop'),
|
| 55 |
+
dict(type='GenSkeFeat', feats=['km']),
|
| 56 |
+
dict(type='UniformSampleDecode', clip_len=100),
|
| 57 |
+
dict(type='FormatGCNInput'),
|
| 58 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 59 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 60 |
+
],
|
| 61 |
+
split='xsub_train'),
|
| 62 |
+
val=dict(
|
| 63 |
+
type='PoseDataset',
|
| 64 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 65 |
+
pipeline=[
|
| 66 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 67 |
+
dict(type='GenSkeFeat', feats=['km']),
|
| 68 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=1),
|
| 69 |
+
dict(type='FormatGCNInput'),
|
| 70 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 71 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 72 |
+
],
|
| 73 |
+
split='xsub_val'),
|
| 74 |
+
test=dict(
|
| 75 |
+
type='PoseDataset',
|
| 76 |
+
ann_file='/data/lhd/pyskl_data/nturgbd/ntu120_3danno.pkl',
|
| 77 |
+
pipeline=[
|
| 78 |
+
dict(type='PreNormalize3D', align_spine=False),
|
| 79 |
+
dict(type='GenSkeFeat', feats=['km']),
|
| 80 |
+
dict(type='UniformSampleDecode', clip_len=100, num_clips=10),
|
| 81 |
+
dict(type='FormatGCNInput'),
|
| 82 |
+
dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]),
|
| 83 |
+
dict(type='ToTensor', keys=['keypoint'])
|
| 84 |
+
],
|
| 85 |
+
split='xsub_val'))
|
| 86 |
+
optimizer = dict(
|
| 87 |
+
type='SGD', lr=0.05, momentum=0.9, weight_decay=0.0005, nesterov=True)
|
| 88 |
+
optimizer_config = dict(grad_clip=None)
|
| 89 |
+
lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False)
|
| 90 |
+
total_epochs = 150
|
| 91 |
+
checkpoint_config = dict(interval=1)
|
| 92 |
+
evaluation = dict(interval=1, metrics=['top_k_accuracy'])
|
| 93 |
+
log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')])
|
| 94 |
+
dist_params = dict(backend='nccl')
|
| 95 |
+
gpu_ids = range(0, 2)
|
ntu120_xsub/ntu120_xsub_ensemble.py
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from mmcv import load
|
| 2 |
+
import sys
|
| 3 |
+
# Note: please adjust the relative path according to the actual situation.
|
| 4 |
+
sys.path.append('../..')
|
| 5 |
+
from protogcn.smp import *
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
j_1 = load('j_1/best_pred.pkl')
|
| 9 |
+
b_1 = load('b_1/best_pred.pkl')
|
| 10 |
+
k_1 = load('k_1/best_pred.pkl')
|
| 11 |
+
j_2 = load('j_2/best_pred.pkl')
|
| 12 |
+
b_2 = load('b_2/best_pred.pkl')
|
| 13 |
+
k_2 = load('k_2/best_pred.pkl')
|
| 14 |
+
jm = load('jm/best_pred.pkl')
|
| 15 |
+
bm = load('bm/best_pred.pkl')
|
| 16 |
+
km = load('km/best_pred.pkl')
|
| 17 |
+
label = load_label('/data/nturgbd/ntu120_3danno.pkl', 'xsub_val')
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
"""
|
| 21 |
+
***************
|
| 22 |
+
InfoGCN v0:
|
| 23 |
+
j jm b bm k km
|
| 24 |
+
2S: 89.75
|
| 25 |
+
4S: 89.86
|
| 26 |
+
6S: 90.44
|
| 27 |
+
***************
|
| 28 |
+
"""
|
| 29 |
+
print('InfoGCN v0:')
|
| 30 |
+
print('j jm b bm k km')
|
| 31 |
+
print('2S')
|
| 32 |
+
fused = comb([j_1, b_1], [1, 1])
|
| 33 |
+
print('Top-1', top1(fused, label))
|
| 34 |
+
|
| 35 |
+
print('4S')
|
| 36 |
+
fused = comb([j_1, b_1, jm, bm], [2, 2, 1, 1])
|
| 37 |
+
print('Top-1', top1(fused, label))
|
| 38 |
+
|
| 39 |
+
print('6S')
|
| 40 |
+
fused = comb([j_1, b_1, k_1, jm, bm, km], [7, 7, 7, 3, 3, 3])
|
| 41 |
+
print('Top-1', top1(fused, label))
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
"""
|
| 45 |
+
***************
|
| 46 |
+
InfoGCN v1:
|
| 47 |
+
j j b b k k
|
| 48 |
+
2S: 89.75
|
| 49 |
+
4S: 90.43
|
| 50 |
+
6S: 90.92
|
| 51 |
+
***************
|
| 52 |
+
"""
|
| 53 |
+
print('InfoGCN v1:')
|
| 54 |
+
print('j j b b k k')
|
| 55 |
+
print('2S')
|
| 56 |
+
fused = comb([j_1, b_1], [1, 1])
|
| 57 |
+
print('Top-1', top1(fused, label))
|
| 58 |
+
|
| 59 |
+
print('4S')
|
| 60 |
+
fused = comb([j_1, b_1, j_2, b_2], [4, 9, 4, 9])
|
| 61 |
+
print('Top-1', top1(fused, label))
|
| 62 |
+
|
| 63 |
+
print('6S')
|
| 64 |
+
fused = comb([j_1, j_2, b_1, b_2, k_1, k_2], [4, 4, 9, 9, 5, 5])
|
| 65 |
+
print('Top-1', top1(fused, label))
|