• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Protocol buffers for saved tensor slices. It's used for the brain tensor
2// ops checkpoints and the V3 checkpoints in dist_belief.
3
4// A checkpoint file is an sstable. The value for each record is a serialized
5// SavedTensorSlices message (defined below).
6//
7// Each checkpoint file has a record with the empty key (""), which corresponds
8// to a SavedTensorSlices message that contains a "meta", that serves as a
9// table of contents on all the tensor slices saved in this file. Since the key
10// is "", it's always the first record in each file.
11//
12// Each of the rest of the records in a checkpoint stores the raw data of a
13// particular tensor slice, in SavedSlice format. The corresponding key is an
14// ordered code that encodes the name of the tensor and the slice
15// information. The name is also stored in the SaveSlice message for ease of
16// debugging and manual examination.
17
18syntax = "proto3";
19
20package tensorflow;
21option cc_enable_arenas = true;
22option java_outer_classname = "SavedTensorSliceProtos";
23option java_multiple_files = true;
24option java_package = "org.tensorflow.util";
25
26import "tensorflow/core/framework/tensor_shape.proto";
27import "tensorflow/core/framework/tensor_slice.proto";
28import "tensorflow/core/framework/tensor.proto";
29import "tensorflow/core/framework/types.proto";
30import "tensorflow/core/framework/versions.proto";
31
32// Metadata describing the set of slices of the same tensor saved in a
33// checkpoint file.
34message SavedSliceMeta {
35  // Name of the tensor.
36  string name = 1;
37
38  // Shape of the tensor
39  TensorShapeProto shape = 2;
40
41  // Type of the tensor
42  DataType type = 3;
43
44  // Explicit list of slices saved in the checkpoint file.
45  repeated TensorSliceProto slice = 4;
46};
47
48// Metadata describing the set of tensor slices saved in a checkpoint file.
49// It is always stored at the beginning of each checkpoint file.
50message SavedTensorSliceMeta {
51  // Each SavedSliceMeta describes the slices for one tensor.
52  repeated SavedSliceMeta tensor = 1;
53
54  // Compatibility version of this checkpoint.  See core/public/version.h
55  // for version history.
56  VersionDef versions = 2;
57};
58
59// Saved tensor slice: it stores the name of the tensors, the slice, and the
60// raw data.
61message SavedSlice {
62  // Name of the tensor that this slice belongs to. This must be identical to
63  // the name used to encode the key for this record.
64  string name = 1;
65
66  // Extent of the slice.  Must have one entry for each of the dimension of the
67  // tensor that this slice belongs to.
68  TensorSliceProto slice = 2;
69
70  // The raw data of the slice is stored as a TensorProto. Only raw data are
71  // stored (we don't fill in fields such as dtype or tensor_shape).
72  TensorProto data = 3;
73};
74
75// Each record in a v3 checkpoint file is a serialized SavedTensorSlices
76// message.
77message SavedTensorSlices {
78  // This is only present at the first item of each checkpoint file and serves
79  // as a table of contents, listing all the tensor slices saved in this file.
80  SavedTensorSliceMeta meta = 1;
81
82  // This exists in all but the first item of each checkpoint file.
83  SavedSlice data = 2;
84};
85