VideoInference / reports /train.log
Zihanj's picture
Upload curated v1 multihead ONNX bundle
21d687a verified
Raw
History Blame Contribute Delete
18.2 kB
[partial train] only training branches: ['arms', 'hands', 'jump_squat', 'locomotion', 'poses']
[base model] loaded 8 branches from model_jump_squat_squat_fast_rise_w10_cuda.pth: ['locomotion', 'jump_squat', 'arms', 'hands', 'seals', 'head', 'torso', 'poses']
Loading data from dataset\clip_data_back_v1_curated_20260610 …
[partial load] loading 37 classes, skipping 13: ['bellyseal', 'chestseal', 'headdown', 'headseal', 'headup', 'lhandseal', 'lheadturn', 'llean', 'lshoulderturn', 'rhandseal', 'rheadturn', 'rlean', 'rshoulderturn']
calibration: 37 clips matched to noaction, 1009 clips using own frame-0 fallback
classes : ['bellyseal', 'bothhandgesture', 'chestseal', 'fastwalk', 'headdown', 'headseal', 'headup', 'highknee', 'jump', 'jump_back', 'larmchop', 'larmlowside', 'lbkstep', 'lbkstep_back', 'lfwdstride', 'lfwdstride_back', 'lhandchest', 'lhandgesture', 'lhandseal', 'lheadturn', 'llean', 'lowrun', 'lshoulderturn', 'lstride', 'lstride_back', 'multichop', 'noaction', 'pickup', 'rarmchop', 'rarmlowside', 'rbkstep', 'rbkstep_back', 'rfwdstride', 'rfwdstride_back', 'rhandchest', 'rhandgesture', 'rhandseal', 'rheadturn', 'rlean', 'rshoulderturn', 'rstride', 'rstride_back', 'run', 'squat', 'squat_back', 'tpose', 'tpose_back', 'walk', 'ypose', 'ypose_back']
files : 1017 | windows: 49231
train files=932 test files=85
device : cuda
run dir : C:\Workspace\ActionLinkPerception\runs\20260610_curated_v1_multihead_w10_cuda
model : multi-branch ensemble (['locomotion', 'jump_squat', 'arms', 'hands', 'seals', 'head', 'torso', 'poses'])
[build_samples] remapped→noaction: 20705 kept=20705 (action_windows=23204, ratio=1) dropped: 0
[build_samples] remapped→noaction: 1988 dropped: 0
── Branch [locomotion] keypoints=['left_hip', 'right_hip', 'left_knee', 'right_knee', 'left_ankle', 'right_ankle', 'left_heel', 'right_heel', 'left_foot_index', 'right_foot_index'] classes=['walk', 'fastwalk', 'run', 'lowrun', 'lstride', 'lstride_back', 'rstride', 'rstride_back', 'lfwdstride', 'lfwdstride_back', 'rfwdstride', 'rfwdstride_back', 'lbkstep', 'lbkstep_back', 'rbkstep', 'rbkstep_back', 'highknee', 'noaction']
train=45208 test=4023
[locomotion] training settings: batch=96, lr=0.001, weight_decay=0.0001, label_smoothing=0.05, class_weight_mode=inverse, augment=True
[locomotion] class weights:
walk 0.68
fastwalk 5.41
run 0.65
lowrun 3.84
lstride 2.11
lstride_back 2.68
rstride 1.93
rstride_back 4.08
lfwdstride 2.21
lfwdstride_back 3.92
rfwdstride 2.20
rfwdstride_back 7.02
lbkstep 2.08
lbkstep_back 5.23
rbkstep 2.33
rbkstep_back 4.26
highknee 0.65
noaction 0.11
[locomotion] select metric: macro_f1
[locomotion] epoch 1/35 loss=1.9875 test_acc=0.3791 macro_f1=0.3785 weighted_f1=0.4203 select=0.3785
[locomotion] epoch 10/35 loss=1.2763 test_acc=0.6030 macro_f1=0.5282 weighted_f1=0.6425 select=0.5282
[locomotion] epoch 20/35 loss=1.1639 test_acc=0.7375 macro_f1=0.6295 weighted_f1=0.7441 select=0.6295
[locomotion] epoch 30/35 loss=1.1183 test_acc=0.7102 macro_f1=0.6275 weighted_f1=0.7351 select=0.6275
[locomotion] Best selected metric (macro_f1): 0.6421 @ epoch 25 acc=0.7298
[locomotion] Per-class test accuracy:
walk 153/ 413 37.05%
fastwalk 4/ 86 4.65%
run 170/ 216 78.70%
lowrun 91/ 109 83.49%
lstride 32/ 48 66.67%
lstride_back 62/ 62 100.00%
rstride 62/ 83 74.70%
rstride_back 51/ 51 100.00%
lfwdstride 46/ 77 59.74%
lfwdstride_back 33/ 40 82.50%
rfwdstride 88/ 96 91.67%
rfwdstride_back 43/ 51 84.31%
lbkstep 68/ 77 88.31%
lbkstep_back 2/ 2 100.00%
rbkstep 56/ 122 45.90%
rbkstep_back 37/ 37 100.00%
highknee 181/ 242 74.79%
noaction 1757/2211 79.47%
[locomotion] Classification metrics:
class prec recall f1 supp sw_rate sw# n_clip perfect
------------------------------------------------------------------------------
walk 0.845 0.370 0.515 413 0.058 8.00 3 0
fastwalk 0.085 0.047 0.060 86 0.106 9.00 1 0
run 0.756 0.787 0.771 216 0.047 5.00 2 0
lowrun 0.843 0.835 0.839 109 0.037 4.00 1 0
lstride 0.166 0.667 0.266 48 0.039 0.67 3 1
lstride_back 1.000 1.000 1.000 62 0.000 0.00 3 3
rstride 0.805 0.747 0.775 83 0.068 1.33 3 0
rstride_back 1.000 1.000 1.000 51 0.000 0.00 3 3
lfwdstride 0.177 0.597 0.273 77 0.160 6.00 2 0
lfwdstride_back 1.000 0.825 0.904 40 0.019 0.50 2 1
rfwdstride 0.391 0.917 0.548 96 0.041 2.00 2 1
rfwdstride_back 1.000 0.843 0.915 51 0.050 1.00 2 1
lbkstep 0.591 0.883 0.708 77 0.087 2.00 2 1
lbkstep_back 0.071 1.000 0.133 2 0.000 0.00 1 1
rbkstep 0.862 0.459 0.599 122 0.080 6.00 2 0
rbkstep_back 0.712 1.000 0.831 37 0.000 0.00 2 2
highknee 0.439 0.748 0.554 242 0.029 3.50 2 0
noaction 0.952 0.795 0.866 2211 0.037 1.84 49 24
accuracy 0.730
macro 0.650 0.751 0.642
weighted 0.828 0.730 0.753
[locomotion] Label smoothness (per clip):
clips evaluated : 85 (mean len 47.3 windows)
mean switches : 2.18
mean switch rate: 0.041 (0 = no flipping, 1 = flip every frame)
perfectly stable clips: 38 / 85
[locomotion] Confusion matrix → C:\Workspace\ActionLinkPerception\runs\20260610_curated_v1_multihead_w10_cuda\confusion_locomotion.png
[build_samples] remapped→noaction: 41171 kept=2738 (action_windows=2738, ratio=1) dropped: 0
[build_samples] remapped→noaction: 3465 dropped: 0
── Branch [jump_squat] keypoints=['left_shoulder', 'right_shoulder', 'left_hip', 'right_hip', 'left_knee', 'right_knee', 'left_ankle', 'right_ankle', 'left_heel', 'right_heel', 'left_foot_index', 'right_foot_index'] classes=['jump', 'jump_back', 'squat', 'squat_back', 'noaction']
train=6775 test=4023
[jump_squat] training settings: batch=96, lr=0.001, weight_decay=0.0001, label_smoothing=0.05, class_weight_mode=inverse, augment=True
[jump_squat] class weights:
jump 1.18
jump_back 3.34
squat 4.84
squat_back 1.50
noaction 0.34
[jump_squat] select metric: macro_f1
[jump_squat] epoch 1/35 loss=1.0462 test_acc=0.8459 macro_f1=0.4195 weighted_f1=0.8664 select=0.4195
[jump_squat] epoch 10/35 loss=0.5983 test_acc=0.7857 macro_f1=0.4877 weighted_f1=0.8498 select=0.4877
[jump_squat] epoch 20/35 loss=0.5445 test_acc=0.8620 macro_f1=0.6241 weighted_f1=0.8965 select=0.6241
[jump_squat] epoch 30/35 loss=0.5208 test_acc=0.9182 macro_f1=0.7559 weighted_f1=0.9312 select=0.7559
[jump_squat] Best selected metric (macro_f1): 0.7943 @ epoch 26 acc=0.9354
[jump_squat] Per-class test accuracy:
jump 135/ 166 81.33%
jump_back 58/ 61 95.08%
squat 11/ 11 100.00%
squat_back 97/ 97 100.00%
noaction 3462/3688 93.87%
[jump_squat] Classification metrics:
class prec recall f1 supp sw_rate sw# n_clip perfect
------------------------------------------------------------------------------
jump 0.429 0.813 0.561 166 0.058 3.00 3 1
jump_back 0.716 0.951 0.817 61 0.013 0.33 3 2
squat 0.550 1.000 0.710 11 0.000 0.00 3 3
squat_back 0.851 1.000 0.919 97 0.000 0.00 4 4
noaction 0.991 0.939 0.964 3688 0.012 0.69 72 53
accuracy 0.935
macro 0.707 0.941 0.794
weighted 0.959 0.935 0.944
[jump_squat] Label smoothness (per clip):
clips evaluated : 85 (mean len 47.3 windows)
mean switches : 0.71
mean switch rate: 0.012 (0 = no flipping, 1 = flip every frame)
perfectly stable clips: 63 / 85
[jump_squat] Confusion matrix → C:\Workspace\ActionLinkPerception\runs\20260610_curated_v1_multihead_w10_cuda\confusion_jump_squat.png
[build_samples] remapped→noaction: 34332 kept=9577 (action_windows=9577, ratio=1) dropped: 0
[build_samples] remapped→noaction: 2940 dropped: 0
── Branch [arms] keypoints=['left_shoulder', 'right_shoulder', 'left_elbow', 'right_elbow', 'left_wrist', 'right_wrist', 'left_pinky', 'right_pinky', 'left_index', 'right_index', 'left_thumb', 'right_thumb'] classes=['larmchop', 'rarmchop', 'multichop', 'larmlowside', 'rarmlowside', 'noaction']
train=20453 test=4023
[arms] training settings: batch=96, lr=0.001, weight_decay=0.0001, label_smoothing=0.05, class_weight_mode=inverse, augment=True
[arms] class weights:
larmchop 2.46
rarmchop 2.22
multichop 1.00
larmlowside 2.07
rarmlowside 2.15
noaction 0.31
[arms] select metric: macro_f1
[arms] epoch 1/35 loss=1.0829 test_acc=0.4919 macro_f1=0.5031 weighted_f1=0.5718 select=0.5031
[arms] epoch 10/35 loss=0.6931 test_acc=0.8484 macro_f1=0.7428 weighted_f1=0.8715 select=0.7428
[arms] epoch 20/35 loss=0.6171 test_acc=0.8541 macro_f1=0.7129 weighted_f1=0.8725 select=0.7129
[arms] epoch 30/35 loss=0.5746 test_acc=0.8633 macro_f1=0.7430 weighted_f1=0.8790 select=0.7430
[arms] Best selected metric (macro_f1): 0.7892 @ epoch 28 acc=0.9075
[arms] Per-class test accuracy:
larmchop 116/ 128 90.62%
rarmchop 114/ 157 72.61%
multichop 306/ 379 80.74%
larmlowside 83/ 83 100.00%
rarmlowside 105/ 113 92.92%
noaction 2927/3163 92.54%
[arms] Classification metrics:
class prec recall f1 supp sw_rate sw# n_clip perfect
------------------------------------------------------------------------------
larmchop 0.655 0.906 0.761 128 0.013 0.67 3 2
rarmchop 0.437 0.726 0.545 157 0.044 2.33 3 0
multichop 0.867 0.807 0.836 379 0.032 3.25 4 0
larmlowside 0.741 1.000 0.851 83 0.000 0.00 2 2
rarmlowside 0.682 0.929 0.787 113 0.029 1.50 2 0
noaction 0.987 0.925 0.955 3163 0.014 0.62 71 50
accuracy 0.908
macro 0.728 0.882 0.789
weighted 0.930 0.908 0.915
[arms] Label smoothness (per clip):
clips evaluated : 85 (mean len 47.3 windows)
mean switches : 0.81
mean switch rate: 0.016 (0 = no flipping, 1 = flip every frame)
perfectly stable clips: 54 / 85
[arms] Confusion matrix → C:\Workspace\ActionLinkPerception\runs\20260610_curated_v1_multihead_w10_cuda\confusion_arms.png
[build_samples] remapped→noaction: 37741 kept=6168 (action_windows=6168, ratio=1) dropped: 0
[build_samples] remapped→noaction: 3231 dropped: 0
── Branch [hands] keypoints=['left_shoulder', 'right_shoulder', 'left_elbow', 'right_elbow', 'left_wrist', 'right_wrist', 'left_pinky', 'right_pinky', 'left_index', 'right_index', 'left_thumb', 'right_thumb'] classes=['lhandgesture', 'rhandgesture', 'bothhandgesture', 'lhandchest', 'rhandchest', 'pickup', 'noaction']
train=13635 test=4023
[hands] training settings: batch=96, lr=0.001, weight_decay=0.0001, label_smoothing=0.05, class_weight_mode=inverse, augment=True
[hands] class weights:
lhandgesture 13.25
rhandgesture 10.94
bothhandgesture 9.99
lhandchest 1.44
rhandchest 0.96
pickup 0.86
noaction 0.26
[hands] select metric: macro_f1
[hands] epoch 1/35 loss=1.6970 test_acc=0.3659 macro_f1=0.3179 weighted_f1=0.4572 select=0.3179
[hands] epoch 10/35 loss=1.2178 test_acc=0.7517 macro_f1=0.5221 weighted_f1=0.8032 select=0.5221
[hands] epoch 20/35 loss=1.1389 test_acc=0.8305 macro_f1=0.5640 weighted_f1=0.8588 select=0.5640
[hands] epoch 30/35 loss=1.1133 test_acc=0.7671 macro_f1=0.5215 weighted_f1=0.8108 select=0.5215
[hands] Best selected metric (macro_f1): 0.5987 @ epoch 35 acc=0.8479
[hands] Per-class test accuracy:
lhandgesture 40/ 40 100.00%
rhandgesture 42/ 45 93.33%
bothhandgesture 59/ 65 90.77%
lhandchest 39/ 98 39.80%
rhandchest 143/ 145 98.62%
pickup 127/ 176 72.16%
noaction 2961/3454 85.73%
[hands] Classification metrics:
class prec recall f1 supp sw_rate sw# n_clip perfect
------------------------------------------------------------------------------
lhandgesture 0.215 1.000 0.354 40 0.000 0.00 1 1
rhandgesture 0.300 0.933 0.454 45 0.023 1.00 1 0
bothhandgesture 0.513 0.908 0.656 65 0.016 1.00 1 0
lhandchest 0.487 0.398 0.438 98 0.009 0.50 2 1
rhandchest 0.769 0.986 0.864 145 0.007 0.33 3 2
pickup 0.390 0.722 0.506 176 0.029 2.50 2 0
noaction 0.990 0.857 0.919 3454 0.040 1.43 75 47
accuracy 0.848
macro 0.523 0.829 0.599
weighted 0.921 0.848 0.872
[hands] Label smoothness (per clip):
clips evaluated : 85 (mean len 47.3 windows)
mean switches : 1.36
mean switch rate: 0.037 (0 = no flipping, 1 = flip every frame)
perfectly stable clips: 51 / 85
[hands] Confusion matrix → C:\Workspace\ActionLinkPerception\runs\20260610_curated_v1_multihead_w10_cuda\confusion_hands.png
── Branch [seals] [INHERITED from base model, acc=0.9506]
── Branch [head] [INHERITED from base model, acc=0.9339]
── Branch [torso] [INHERITED from base model, acc=0.9731]
[build_samples] remapped→noaction: 41687 kept=2222 (action_windows=2222, ratio=1) dropped: 0
[build_samples] remapped→noaction: 3576 dropped: 0
── Branch [poses] keypoints=['nose', 'left_shoulder', 'right_shoulder', 'left_elbow', 'right_elbow', 'left_wrist', 'right_wrist', 'left_hip', 'right_hip', 'left_knee', 'right_knee', 'left_ankle', 'right_ankle'] classes=['tpose', 'tpose_back', 'ypose', 'ypose_back', 'noaction']
train=5743 test=4023
[poses] training settings: batch=96, lr=0.001, weight_decay=0.0001, label_smoothing=0.05, class_weight_mode=inverse, augment=True
[poses] class weights:
tpose 1.52
tpose_back 3.84
ypose 1.11
ypose_back 8.64
noaction 0.33
[poses] select metric: macro_f1
[poses] epoch 1/35 loss=0.9267 test_acc=0.8996 macro_f1=0.5665 weighted_f1=0.9269 select=0.5665
[poses] epoch 10/35 loss=0.5963 test_acc=0.8941 macro_f1=0.7469 weighted_f1=0.9249 select=0.7469
[poses] epoch 20/35 loss=0.5634 test_acc=0.9413 macro_f1=0.7813 weighted_f1=0.9506 select=0.7813
[poses] epoch 30/35 loss=0.5584 test_acc=0.9669 macro_f1=0.8223 weighted_f1=0.9674 select=0.8223
[poses] Best selected metric (macro_f1): 0.8565 @ epoch 15 acc=0.9804
[poses] Per-class test accuracy:
tpose 38/ 102 37.25%
tpose_back 17/ 17 100.00%
ypose 83/ 89 93.26%
ypose_back 16/ 16 100.00%
noaction 3790/3799 99.76%
[poses] Classification metrics:
class prec recall f1 supp sw_rate sw# n_clip perfect
------------------------------------------------------------------------------
tpose 1.000 0.373 0.543 102 0.009 0.67 3 2
tpose_back 1.000 1.000 1.000 17 0.000 0.00 2 2
ypose 0.664 0.933 0.776 89 0.024 1.00 2 0
ypose_back 0.941 1.000 0.970 16 0.000 0.00 2 2
noaction 0.991 0.998 0.994 3799 0.001 0.09 76 74
accuracy 0.980
macro 0.919 0.861 0.856
weighted 0.983 0.980 0.978
[poses] Label smoothness (per clip):
clips evaluated : 85 (mean len 47.3 windows)
mean switches : 0.13
mean switch rate: 0.002 (0 = no flipping, 1 = flip every frame)
perfectly stable clips: 80 / 85
[poses] Confusion matrix → C:\Workspace\ActionLinkPerception\runs\20260610_curated_v1_multihead_w10_cuda\confusion_poses.png
Multi-branch model saved → C:\Workspace\ActionLinkPerception\runs\20260610_curated_v1_multihead_w10_cuda\model_curated_v1_multihead_w10_cuda.pth
locomotion acc=0.7298 classes=['walk', 'fastwalk', 'run', 'lowrun', 'lstride', 'lstride_back', 'rstride', 'rstride_back', 'lfwdstride', 'lfwdstride_back', 'rfwdstride', 'rfwdstride_back', 'lbkstep', 'lbkstep_back', 'rbkstep', 'rbkstep_back', 'highknee', 'noaction']
jump_squat acc=0.9354 classes=['jump', 'jump_back', 'squat', 'squat_back', 'noaction']
arms acc=0.9075 classes=['larmchop', 'rarmchop', 'multichop', 'larmlowside', 'rarmlowside', 'noaction']
hands acc=0.8479 classes=['lhandgesture', 'rhandgesture', 'bothhandgesture', 'lhandchest', 'rhandchest', 'pickup', 'noaction']
seals acc=0.9506 classes=['lhandseal', 'rhandseal', 'headseal', 'chestseal', 'bellyseal', 'noaction']
head acc=0.9339 classes=['headdown', 'headup', 'lheadturn', 'rheadturn', 'noaction']
torso acc=0.9731 classes=['llean', 'rlean', 'lshoulderturn', 'rshoulderturn', 'noaction']
poses acc=0.9804 classes=['tpose', 'tpose_back', 'ypose', 'ypose_back', 'noaction']
Branch config saved → C:\Workspace\ActionLinkPerception\runs\20260610_curated_v1_multihead_w10_cuda\model_curated_v1_multihead_w10_cuda.json