syntax = "proto3"; package tensorflow; option cc_enable_arenas = true; option java_outer_classname = "SummaryProtos"; option java_multiple_files = true; option java_package = "org.tensorflow.framework"; option go_package = "github.com/tensorflow/tensorflow/tensorflow/go/core/framework"; import "tensorflow/core/framework/tensor.proto"; // Metadata associated with a series of Summary data message SummaryDescription { // Hint on how plugins should process the data in this series. // Supported values include "scalar", "histogram", "image", "audio" string type_hint = 1; } // Serialization format for histogram module in // core/lib/histogram/histogram.h message HistogramProto { double min = 1; double max = 2; double num = 3; double sum = 4; double sum_squares = 5; // Parallel arrays encoding the bucket boundaries and the bucket values. // bucket(i) is the count for the bucket i. The range for // a bucket is: // i == 0: -DBL_MAX .. bucket_limit(0) // i != 0: bucket_limit(i-1) .. bucket_limit(i) repeated double bucket_limit = 6 [packed = true]; repeated double bucket = 7 [packed = true]; }; // A SummaryMetadata encapsulates information on which plugins are able to make // use of a certain summary value. message SummaryMetadata { message PluginData { // The name of the plugin this data pertains to. string plugin_name = 1; // The content to store for the plugin. The best practice is for this to be // a binary serialized protocol buffer. bytes content = 2; } // Data that associates a summary with a certain plugin. PluginData plugin_data = 1; // Display name for viewing in TensorBoard. string display_name = 2; // Longform readable description of the summary sequence. Markdown supported. string summary_description = 3; }; // A Summary is a set of named values to be displayed by the // visualizer. // // Summaries are produced regularly during training, as controlled by // the "summary_interval_secs" attribute of the training operation. // Summaries are also produced at the end of an evaluation. message Summary { message Image { // Dimensions of the image. int32 height = 1; int32 width = 2; // Valid colorspace values are // 1 - grayscale // 2 - grayscale + alpha // 3 - RGB // 4 - RGBA // 5 - DIGITAL_YUV // 6 - BGRA int32 colorspace = 3; // Image data in encoded format. All image formats supported by // image_codec::CoderUtil can be stored here. bytes encoded_image_string = 4; } message Audio { // Sample rate of the audio in Hz. float sample_rate = 1; // Number of channels of audio. int64 num_channels = 2; // Length of the audio in frames (samples per channel). int64 length_frames = 3; // Encoded audio data and its associated RFC 2045 content type (e.g. // "audio/wav"). bytes encoded_audio_string = 4; string content_type = 5; } message Value { // This field is deprecated and will not be set. string node_name = 7; // Tag name for the data. Used by TensorBoard plugins to organize data. Tags // are often organized by scope (which contains slashes to convey // hierarchy). For example: foo/bar/0 string tag = 1; // Contains metadata on the summary value such as which plugins may use it. // Take note that many summary values may lack a metadata field. This is // because the FileWriter only keeps a metadata object on the first summary // value with a certain tag for each tag. TensorBoard then remembers which // tags are associated with which plugins. This saves space. SummaryMetadata metadata = 9; // Value associated with the tag. oneof value { float simple_value = 2; bytes obsolete_old_style_histogram = 3; Image image = 4; HistogramProto histo = 5; Audio audio = 6; TensorProto tensor = 8; } } // Set of values for the summary. repeated Value value = 1; }