aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/example/feature.proto
blob: 5ab77c2997f6fe6065986e751f45b2231869740b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// Protocol messages for describing features for machine learning model
// training or inference.
//
// There are three base Feature types:
//   - bytes
//   - float
//   - int64
//
// Base features are contained in Lists which may hold zero or more values.
//
// Features are organized into categories by name.  The Features message
// contains the mapping from name to Feature.
//
// Example Features for a movie recommendation application:
//   feature {
//     key: "age"
//     float_list {
//       value: 29.0
//     }
//   }
//   feature {
//     key: "movie"
//     bytes_list {
//       value: "The Shawshank Redemption"
//       value: "Fight Club"
//     }
//   }
//   feature {
//     key: "movie_ratings"
//     float_list {
//       value: 9.0
//       value: 9.7
//     }
//   }
//   feature {
//     key: "suggestion"
//     bytes_list {
//       value: "Inception"
//     }
//   }
//   feature {
//     key: "suggestion_purchased"
//     int64_list {
//       value: 1
//     }
//   }
//   feature {
//     key: "purchase_price"
//     float_list {
//       value: 9.99
//     }
//   }

syntax = "proto3";
// option cc_enable_arenas = true;

package tensorflow;

message Feature {
  // Each feature can be exactly one kind.
  oneof kind {
    BytesList bytes_list = 1;
    FloatList float_list = 2;
    Int64List int64_list = 3;
  }
};

message Features {
  // Map from feature name to feature.
  map<string, Feature> feature = 1;
};

// Containers to hold repeated fundamental features.
message BytesList {
  repeated bytes value = 1;
}
message FloatList {
  repeated float value = 1 [packed=true];
}
message Int64List {
  repeated int64 value = 1 [packed=true];
}