阅读(4.6k) 书签 (0)

TensorFlow协议缓冲区示例

2018-09-27 09:22 更新

//用于描述机器学习模型功能的协议消息

//训练或推理.

//

//有三种基本的功能类型:

//  - 字节

//  -  float

//  -  int64

//

//功能包含可能包含零个或多个值的列表.这些

//列表是基本值BytesList,FloatList,Int64List.

//

//功能按名称分为类别和功能消息

//包含从名称到功能的映射.

//

//以下是一个电影推荐应用程序的示例功能:

// feature { // key: "age" // value { float_list { // value: 29.0 // }} // } // feature { // key: "movie" // value { bytes_list { // value: "The Shawshank Redemption" // value: "Fight Club" // }} // } // feature { // key: "movie_ratings" // value { float_list { // value: 9.0 // value: 9.7 // }} // } // feature { // key: "suggestion" // value { bytes_list { // value: "Inception" // }} // } // feature { // key: "suggestion_purchased" // value { int64_list { // value: 1 // }} // } // feature { // key: "purchase_price" // value { float_list { // value: 9.99 // }} // } // syntax = "proto3"; option cc_enable_arenas = true; option java_outer_classname = "FeatureProtos"; option java_multiple_files = true; option java_package = "org.tensorflow.example"; package tensorflow; // Containers to hold repeated fundamental values. message BytesList { repeated bytes value = 1; } message FloatList { repeated float value = 1 [packed = true]; } message Int64List { repeated int64 value = 1 [packed = true]; } // Containers for non-sequential data. 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 for sequential data. // // A FeatureList contains lists of Features. These may hold zero or more // Feature values. // // FeatureLists are organized into categories by name. The FeatureLists message // contains the mapping from name to FeatureList. // message FeatureList { repeated Feature feature = 1; }; message FeatureLists { // Map from feature name to feature list. map<string, FeatureList> feature_list = 1; };