Skip to content

Commit 9394c5e

Browse files
authored
Hparams: Sort by differs then by name. (#6601)
After sorting with the explicitly specified sorting key (`differs`), `sorted()` returns the order within each `differs` group differently when running externally v.s. internally, which broke internal tests. Changing to sort by name within each `differs` group as a workaround. Googlers, see the test failure details in cl/568227790. #hparams
1 parent 3584a84 commit 9394c5e

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

Diff for: tensorboard/plugins/hparams/backend_context.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -605,10 +605,10 @@ def _sort_and_reduce_to_hparams_limit(experiment, hparams_limit=None):
605605
hparams_limit = len(experiment.hparam_infos)
606606

607607
# Prioritizes returning HParamInfo protos with `differed` values.
608+
# Sorts by `differs` (True first), then by name.
608609
limited_hparam_infos = sorted(
609610
experiment.hparam_infos,
610-
key=lambda hparam_info: hparam_info.differs,
611-
reverse=True,
611+
key=lambda hparam_info: (not hparam_info.differs, hparam_info.name),
612612
)[:hparams_limit]
613613

614614
experiment.ClearField("hparam_infos")

Diff for: tensorboard/plugins/hparams/backend_context_test.py

+20-19
Original file line numberDiff line numberDiff line change
@@ -1188,31 +1188,32 @@ def test_experiment_from_tags_sorts_differed_hparams_first(self):
11881188
def test_experiment_from_runs_with_hparams_limit_no_differed_hparams(self):
11891189
self.session_1_start_info_ = """
11901190
hparams: [
1191-
{key: 'lr' value: {number_value: 100}},
1191+
{key: 'lr' value: {number_value: 0.001}},
11921192
{key: 'model_type' value: {string_value: 'LATTICE'}},
11931193
{key: 'use_batch_norm' value: {bool_value: true}}
11941194
]
11951195
"""
11961196
self.session_2_start_info_ = """
11971197
hparams: [
1198-
{key: 'lr' value: {number_value: 100}},
1198+
{key: 'lr' value: {number_value: 0.001}},
11991199
{key: 'model_type' value: {string_value: 'LATTICE'}},
12001200
{key: 'use_batch_norm' value: {bool_value: true}}
12011201
]
12021202
"""
12031203
self.session_3_start_info_ = """
12041204
hparams: [
1205-
{key: 'lr' value: {number_value: 100}},
1205+
{key: 'lr' value: {number_value: 0.001}},
12061206
{key: 'model_type' value: {string_value: 'LATTICE'}},
12071207
{key: 'use_batch_norm' value: {bool_value: true}}
12081208
]
12091209
"""
12101210
expected_exp = """
12111211
hparam_infos: {
1212-
name: 'use_batch_norm'
1213-
type: DATA_TYPE_BOOL
1214-
domain_discrete: {
1215-
values: [{bool_value: true}]
1212+
name: 'lr'
1213+
type: DATA_TYPE_FLOAT64
1214+
domain_interval {
1215+
min_value: 0.001
1216+
max_value: 0.001
12161217
}
12171218
differs: false
12181219
}
@@ -1306,14 +1307,6 @@ def test_experiment_from_runs_sorts_differed_hparams_first(self):
13061307
]
13071308
"""
13081309
expected_exp = """
1309-
hparam_infos: {
1310-
name: 'use_batch_norm'
1311-
type: DATA_TYPE_BOOL
1312-
domain_discrete: {
1313-
values: [{bool_value: false}, {bool_value: true}]
1314-
}
1315-
differs: true
1316-
}
13171310
hparam_infos: {
13181311
name: 'batch_size'
13191312
type: DATA_TYPE_FLOAT64
@@ -1324,12 +1317,12 @@ def test_experiment_from_runs_sorts_differed_hparams_first(self):
13241317
differs: true
13251318
}
13261319
hparam_infos: {
1327-
name: 'model_type'
1328-
type: DATA_TYPE_STRING
1320+
name: 'use_batch_norm'
1321+
type: DATA_TYPE_BOOL
13291322
domain_discrete: {
1330-
values: [{string_value: 'CNN'}]
1323+
values: [{bool_value: false}, {bool_value: true}]
13311324
}
1332-
differs: false
1325+
differs: true
13331326
}
13341327
hparam_infos: {
13351328
name: 'lr'
@@ -1340,6 +1333,14 @@ def test_experiment_from_runs_sorts_differed_hparams_first(self):
13401333
}
13411334
differs: false
13421335
}
1336+
hparam_infos: {
1337+
name: 'model_type'
1338+
type: DATA_TYPE_STRING
1339+
domain_discrete: {
1340+
values: [{string_value: 'CNN'}]
1341+
}
1342+
differs: false
1343+
}
13431344
"""
13441345
actual_exp = self._experiment_from_metadata(
13451346
include_metrics=False, hparams_limit=None

0 commit comments

Comments
 (0)