Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
MMCV
Commits
f2d11076
Commit
f2d11076
authored
Oct 13, 2021
by
zhouzaida
Committed by
Wenwei Zhang
Nov 10, 2021
Browse files
[Fix] Raise AssertError when eval_res is a null dict
parent
085e6362
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
2 deletions
+19
-2
mmcv/runner/hooks/evaluation.py
mmcv/runner/hooks/evaluation.py
+3
-0
tests/test_runner/test_eval_hook.py
tests/test_runner/test_eval_hook.py
+16
-2
No files found.
mmcv/runner/hooks/evaluation.py
View file @
f2d11076
...
@@ -358,6 +358,9 @@ class EvalHook(Hook):
...
@@ -358,6 +358,9 @@ class EvalHook(Hook):
"""
"""
eval_res
=
self
.
dataloader
.
dataset
.
evaluate
(
eval_res
=
self
.
dataloader
.
dataset
.
evaluate
(
results
,
logger
=
runner
.
logger
,
**
self
.
eval_kwargs
)
results
,
logger
=
runner
.
logger
,
**
self
.
eval_kwargs
)
assert
eval_res
,
'`eval_res` should not be a null dict.'
for
name
,
val
in
eval_res
.
items
():
for
name
,
val
in
eval_res
.
items
():
runner
.
log_buffer
.
output
[
name
]
=
val
runner
.
log_buffer
.
output
[
name
]
=
val
runner
.
log_buffer
.
ready
=
True
runner
.
log_buffer
.
ready
=
True
...
...
tests/test_runner/test_eval_hook.py
View file @
f2d11076
...
@@ -126,10 +126,24 @@ def test_eval_hook():
...
@@ -126,10 +126,24 @@ def test_eval_hook():
with
pytest
.
raises
(
KeyError
):
with
pytest
.
raises
(
KeyError
):
# rule must be in keys of rule_map
# rule must be in keys of rule_map
test_dataset
=
Model
()
test_dataset
=
ExampleDataset
()
data_loader
=
DataLoader
(
test_dataset
)
data_loader
=
DataLoader
(
test_dataset
)
EvalHook
(
data_loader
,
save_best
=
'auto'
,
rule
=
'unsupport'
)
EvalHook
(
data_loader
,
save_best
=
'auto'
,
rule
=
'unsupport'
)
with
pytest
.
raises
(
AssertionError
):
# eval_res returned by `dataset.evaluate()` should not be a null dict
class
_EvalDataset
(
ExampleDataset
):
def
evaluate
(
self
,
results
,
logger
=
None
):
return
{}
test_dataset
=
_EvalDataset
()
data_loader
=
DataLoader
(
test_dataset
)
eval_hook
=
EvalHook
(
data_loader
)
runner
=
_build_epoch_runner
()
runner
.
register_hook
(
eval_hook
)
runner
.
run
([
data_loader
],
[(
'train'
,
1
)],
1
)
test_dataset
=
ExampleDataset
()
test_dataset
=
ExampleDataset
()
loader
=
DataLoader
(
test_dataset
)
loader
=
DataLoader
(
test_dataset
)
model
=
Model
()
model
=
Model
()
...
@@ -450,7 +464,7 @@ def test_logger(runner, by_epoch, eval_hook_priority):
...
@@ -450,7 +464,7 @@ def test_logger(runner, by_epoch, eval_hook_priority):
path
=
osp
.
join
(
tmpdir
,
next
(
scandir
(
tmpdir
,
'.json'
)))
path
=
osp
.
join
(
tmpdir
,
next
(
scandir
(
tmpdir
,
'.json'
)))
with
open
(
path
)
as
fr
:
with
open
(
path
)
as
fr
:
fr
.
readline
()
# skip first line which is hook_msg
fr
.
readline
()
# skip
the
first line which is
`
hook_msg
`
train_log
=
json
.
loads
(
fr
.
readline
())
train_log
=
json
.
loads
(
fr
.
readline
())
assert
train_log
[
'mode'
]
==
'train'
and
'time'
in
train_log
assert
train_log
[
'mode'
]
==
'train'
and
'time'
in
train_log
val_log
=
json
.
loads
(
fr
.
readline
())
val_log
=
json
.
loads
(
fr
.
readline
())
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment