Add data class metadata to Summary protos

Summary metadata protos may now declare their generic data class, one of
scalar, tensor, or blob sequence. This affords ingestion of summaries on
disk into storage layers that implement the TensorBoard `DataProvider`
API.

This is a subset of a change to TensorBoard:
<https://github.com/tensorflow/tensorboard/pull/3132>

PiperOrigin-RevId: 291053636
Change-Id: I53c74326b04d02850bcfc762c72f5b133a440daf
This commit is contained in:
William Chargin 2020-01-22 16:12:41 -08:00 committed by TensorFlower Gardener
parent a836923de3
commit ac6248d02b
2 changed files with 31 additions and 0 deletions

View File

@ -53,8 +53,32 @@ message SummaryMetadata {
// Longform readable description of the summary sequence. Markdown supported.
string summary_description = 3;
// Class of data stored in this time series. Required for compatibility with
// TensorBoard's generic data facilities (`DataProvider`, et al.). This value
// imposes constraints on the dtype and shape of the corresponding tensor
// values. See `DataClass` docs for details.
DataClass data_class = 4;
};
enum DataClass {
// Unknown data class, used (implicitly) for legacy data. Will not be
// processed by data ingestion pipelines.
DATA_CLASS_UNKNOWN = 0;
// Scalar time series. Each `Value` for the corresponding tag must have
// `tensor` set to a rank-0 tensor of floating-point dtype, which will be
// converted to float64.
DATA_CLASS_SCALAR = 1;
// Tensor time series. Each `Value` for the corresponding tag must have
// `tensor` set. The tensor value is arbitrary, but should be small to
// accommodate direct storage in database backends: an upper bound of a few
// kilobytes is a reasonable rule of thumb.
DATA_CLASS_TENSOR = 2;
// Blob sequence time series. Each `Value` for the corresponding tag must
// have `tensor` set to a rank-1 tensor of bytestring dtype.
DATA_CLASS_BLOB_SEQUENCE = 3;
}
// A Summary is a set of named values to be displayed by the
// visualizer.
//

View File

@ -21,6 +21,13 @@ tf_proto {
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "data_class"
number: 4
label: LABEL_OPTIONAL
type: TYPE_ENUM
type_name: ".tensorflow.DataClass"
}
nested_type {
name: "PluginData"
field {