Skip to content

Commit 872af86

Browse files
authored
Merge pull request #51 from Purg/dev/m3-experiment-config
Add Locs&Confs feature experiment config
2 parents 1c847d5 + c83aee8 commit 872af86

File tree

2 files changed

+134
-1
lines changed

2 files changed

+134
-1
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# @package _global_
2+
3+
defaults:
4+
- override /data: ptg
5+
- override /model: ptg
6+
- override /callbacks: default
7+
- override /trainer: gpu
8+
- override /paths: default
9+
#- override /logger: aim
10+
- override /logger: csv
11+
12+
# all parameters below will be merged with parameters from default configurations set above
13+
# this allows you to overwrite only specified parameters
14+
15+
# Change this name to something descriptive and unique for this experiment.
16+
# This will differentiate the run logs and output to be separate from other
17+
# experiments that may have been run under the configured
18+
# Setting this value influences:
19+
# - the name of the directory under `${paths.root_dir}/logs/` in which training
20+
# run files are stored.
21+
# Default is "train" set in the "configs/train.yaml" file.
22+
#task_name:
23+
24+
# simply provide checkpoint path to resume training
25+
#ckpt_path: null
26+
27+
tags: ["m3", "ms_tcn", "debug"]
28+
29+
seed: 12345
30+
31+
trainer:
32+
min_epochs: 50
33+
max_epochs: 500
34+
log_every_n_steps: 1
35+
36+
model:
37+
num_classes: 6 # number of activity classification classes
38+
compile: false
39+
scheduler:
40+
# Code change to track train/loss instead of val/loss.
41+
factor: 0.9
42+
patience: 10
43+
net:
44+
# Length of feature vector for a single frame.
45+
# Currently derived from the parameterization of dataset vectorizer.
46+
dim: 97
47+
48+
data:
49+
coco_train_activities: "${paths.coco_file_root}/TRAIN-activity_truth.coco.json"
50+
coco_train_objects: "${paths.coco_file_root}/TRAIN-object_detections.coco.json"
51+
coco_train_poses: "${paths.coco_file_root}/TRAIN-pose_estimations.coco.json"
52+
53+
coco_validation_activities: "${paths.coco_file_root}/VALIDATION-activity_truth.coco.json"
54+
coco_validation_objects: "${paths.coco_file_root}/VALIDATION-object_detections.coco.json"
55+
coco_validation_poses: "${paths.coco_file_root}/VALIDATION-pose_estimations.coco.json"
56+
57+
coco_test_activities: "${paths.coco_file_root}/TEST-activity_truth.coco.json"
58+
coco_test_objects: "${paths.coco_file_root}/TEST-object_detections.coco.json"
59+
coco_test_poses: "${paths.coco_file_root}/TEST-pose_estimations.coco.json"
60+
61+
batch_size: 512
62+
num_workers: 16
63+
target_framerate: 15 # BBN Hololens2 Framerate
64+
epoch_sample_factor: 1 # 1x the dataset size iterations for train/val
65+
66+
train_dataset:
67+
window_size: 25
68+
window_label_idx: ${model.pred_frame_index}
69+
vectorize:
70+
_target_: tcn_hpl.data.vectorize.locs_and_confs.LocsAndConfs
71+
top_k: 1
72+
num_classes: 6
73+
use_joint_confs: True
74+
use_pixel_norm: True
75+
use_joint_obj_offsets: False
76+
background_idx: 0
77+
# Augmentations on windows of frame data before performing vectorization.
78+
transform_frame_data:
79+
transforms:
80+
- _target_: tcn_hpl.data.frame_data_aug.window_frame_dropout.DropoutFrameDataTransform
81+
# These parameters are a fudge for now to experiment. Window presence
82+
# looks qualitatively right with what we're seeing live.
83+
frame_rate: ${data.target_framerate}
84+
dets_throughput_mean: 14.5
85+
pose_throughput_mean: 10
86+
dets_latency: 0
87+
pose_latency: 0.1
88+
dets_throughput_std: 0.2
89+
pose_throughput_std: 0.2
90+
fixed_pattern: false
91+
- _target_: tcn_hpl.data.frame_data_aug.rotate_scale_translate_jitter.FrameDataRotateScaleTranslateJitter
92+
translate: 0.05
93+
scale: [0.9, 1.1]
94+
rotate: [-5, 5]
95+
det_loc_jitter: 0.02
96+
det_wh_jitter: 0.02
97+
pose_kp_loc_jitter: 0.005
98+
dets_score_jitter: 0.
99+
pose_score_jitter: 0.
100+
pose_kp_score_jitter: 0.
101+
val_dataset:
102+
# Augmentations on windows of frame data before performing vectorization.
103+
# Sharing transform with training dataset as it is only the drop-out aug to
104+
# simulate stream processing dropout the same.
105+
transform_frame_data:
106+
transforms:
107+
- _target_: tcn_hpl.data.frame_data_aug.window_frame_dropout.DropoutFrameDataTransform
108+
# Mirror training hparams, except used fixed patterns.
109+
frame_rate: ${data.target_framerate}
110+
dets_throughput_mean: 14.5
111+
pose_throughput_mean: 10
112+
dets_latency: 0
113+
pose_latency: 0.1
114+
dets_throughput_std: 0.2
115+
pose_throughput_std: 0.2
116+
fixed_pattern: true
117+
# Test dataset usually configured the same as val, unless there is some
118+
# different set of transforms that should be used during test/prediction.
119+
120+
paths:
121+
# Base directory for training outputs.
122+
root_dir: "/home/local/KHQ/cameron.johnson/code/TCN_HPL/tcn_hpl/train-TCN-M2_bbn_hololens/training_root"
123+
124+
# Convenience variable to where your train/val/test split COCO file datasets
125+
# are stored.
126+
coco_file_root: ${paths.root_dir}
127+
128+
#logger:
129+
# aim:
130+
# experiment: ${task_name}
131+
# capture_terminal_logs: true

tcn_hpl/data/tcn_dataset.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,9 +521,10 @@ def test_dataset_for_input(
521521
# TODO: Some method of configuring which vectorizer to use.
522522
from tcn_hpl.data.vectorize.locs_and_confs import LocsAndConfs
523523

524+
num_object_classes = len(dets_coco.cats)
524525
vectorize = LocsAndConfs(
525526
top_k=1,
526-
num_classes=7,
527+
num_classes=num_object_classes,
527528
use_joint_confs=True,
528529
use_pixel_norm=True,
529530
use_joint_obj_offsets=False,
@@ -568,6 +569,7 @@ def test_dataset_for_input(
568569

569570
logger.info("+" * 60)
570571
window_vecs = dataset[0]
572+
logger.info(f"Number of object classes: {num_object_classes}")
571573
logger.info(f"Number of windows: {len(dataset)}")
572574
logger.info(f"Feature vector dims: {window_vecs[0].shape[1]}")
573575
logger.info("+" * 60)

0 commit comments

Comments
 (0)