Match EasyCom oracle labels to EgoSpeak sampling
This commit is contained in:
@@ -23,27 +23,33 @@ class OracleFeatureTests(unittest.TestCase):
|
||||
def setUp(self) -> None:
|
||||
torch.set_num_threads(1)
|
||||
|
||||
def test_transcript_intervals_are_rasterized_into_half_open_bins(self) -> None:
|
||||
def test_transcript_intervals_match_egospeak_right_edge_sampling(self) -> None:
|
||||
rows = [
|
||||
SimpleNamespace(
|
||||
uid="a",
|
||||
participant_id=3,
|
||||
dense_start_frame=3,
|
||||
dense_end_frame_exclusive=5,
|
||||
# EasyCom annotation Start_Frame=1, End_Frame=8. Samples at
|
||||
# source markers 4,8,... therefore include only row 0.
|
||||
dense_start_frame=0,
|
||||
dense_end_frame_exclusive=8,
|
||||
),
|
||||
SimpleNamespace(
|
||||
uid="b",
|
||||
participant_id=2,
|
||||
dense_start_frame=8,
|
||||
dense_end_frame_exclusive=12,
|
||||
# Start_Frame=5, End_Frame=13 includes markers 8 and 12.
|
||||
dense_start_frame=4,
|
||||
dense_end_frame_exclusive=13,
|
||||
),
|
||||
]
|
||||
activity, wearer, audit = participant_activity(
|
||||
rows, num_steps=4, wearer_id=2
|
||||
)
|
||||
self.assertEqual(activity[3].tolist(), [True, True, False, False])
|
||||
self.assertEqual(wearer.tolist(), [False, False, True, False])
|
||||
self.assertEqual(audit["discarded_terminal_transcript_frames"], 0)
|
||||
self.assertEqual(activity[3].tolist(), [True, False, False, False])
|
||||
self.assertEqual(wearer.tolist(), [False, True, True, False])
|
||||
self.assertEqual(
|
||||
audit["target_sampling_policy"],
|
||||
"egospeak-right-edge-start-inclusive-end-exclusive",
|
||||
)
|
||||
|
||||
def test_history_at_row_does_not_read_later_activity(self) -> None:
|
||||
first = torch.tensor([0, 1, 0, 0, 0], dtype=torch.bool)
|
||||
@@ -152,7 +158,7 @@ class OracleFeatureTests(unittest.TestCase):
|
||||
"config": {
|
||||
"oracle_analysis": True,
|
||||
"uses_speech_labels": True,
|
||||
"causal_policy": "fully-observed-half-open-5hz-bins",
|
||||
"causal_policy": "egospeak-right-edge-current-state",
|
||||
"oracle_condition": "per-person",
|
||||
"visual_dim": 6,
|
||||
"audio_dim": 5,
|
||||
@@ -179,6 +185,8 @@ class OracleFeatureTests(unittest.TestCase):
|
||||
self.assertEqual(audio.shape, (n, 6))
|
||||
self.assertEqual(people.dimension, 6)
|
||||
self.assertEqual(contract["format"], ORACLE_FORMAT)
|
||||
self.assertTrue(torch.equal(people.row_to_frame, torch.arange(n)))
|
||||
self.assertTrue(torch.allclose(people.chosen_frame_times, times))
|
||||
head = TurnPredictionHead(
|
||||
hidden_size=8,
|
||||
num_horizons=2,
|
||||
|
||||
Reference in New Issue
Block a user