Features是用于描述机器学习模型训练或推理的特征的协议消息,用键值对表示数据。
Feature有三种形式:
- bytes
- float
- int64
一个Features中包括可能包含零个或多个值的列表。 这些列表是基本值BytesList,FloatList,Int64List。Feature按名称分类。 Feature的消息包含从名称到功能的映射。
下面是一个电影推荐中的feature的例子
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
}}
}
来源
这里可以看到Features的源代码feature.proto不是用python写的,而是用了google内部使用的一种混合语言数据标准Google Protocol Buffer( 简称 Protobuf)。它是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化。方便文件的存储与网络传输,类似xml。Protobuf可以被转化成各种编程语言,比如python。