Spaces:
Runtime error
Runtime error
# Copyright 2023 The Orbit Authors. All Rights Reserved. | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
"""Provides a utility class for managing summary writing.""" | |
import abc | |
class SummaryManagerInterface(abc.ABC): | |
"""A utility interface for managing summary writing.""" | |
def flush(self): | |
"""Flushes the the recorded summaries.""" | |
raise NotImplementedError | |
def summary_writer(self, relative_path=""): | |
"""Returns the underlying summary writer for scoped writers.""" | |
raise NotImplementedError | |
def write_summaries(self, summary_dict): | |
"""Writes summaries for the given dictionary of values. | |
The summary_dict can be any nested dict. The SummaryManager should | |
recursively creates summaries, yielding a hierarchy of summaries which will | |
then be reflected in the corresponding UIs. | |
For example, users may evaluate on multiple datasets and return | |
`summary_dict` as a nested dictionary: | |
{ | |
"dataset1": { | |
"loss": loss1, | |
"accuracy": accuracy1 | |
}, | |
"dataset2": { | |
"loss": loss2, | |
"accuracy": accuracy2 | |
}, | |
} | |
This will create two set of summaries, "dataset1" and "dataset2". Each | |
summary dict will contain summaries including both "loss" and "accuracy". | |
Args: | |
summary_dict: A dictionary of values. If any value in `summary_dict` is | |
itself a dictionary, then the function will create a new summary_dict | |
with name given by the corresponding key. This is performed recursively. | |
Leaf values are then summarized using the parent relative path. | |
""" | |
raise NotImplementedError | |