TensorFlow
模型
张量、变量共同点:具有形状、类型、值等3个属性。
不同点:变量可被TensorFlow的自动求导机制求导,常被用于机器学习模型的参数。
tfrecord
tensorflow定义的数据格式,一种二进制文件格式,用于保存和读取图像和文本数据。tfrecord文件包含了tf.train.Example protobuf数据。It is designed for use with TensorFlow and is used throughout the higher-level APIS such as TFX.
基本结构与数据类型
tf.train.Example的数据结构是一个字典称为Features
,其内部结构可从proto文件看出:
message Example {
Features features = 1;
};
message Features{
map<string, Feature> featrue = 1;
};
message Feature{
oneof kind{
BytesList bytes_list = 1;
FloatList float_list = 2;
Int64List int64_list = 3;
}
};
数据类型Feature有3个,Int64、Bytes、Float;Int64存储bool、Enum、uint32、int32、int64、uint64,Bytes存储字符串、二进制,Float存储float(float32)和double(float64)。
文件格式即把数据参考字典结构做二进制数据的protobuf序列化,称为string。
def serialize_example(f1, f2, f3, f4):
fts = {
"feature0": _int64_feature(f1),
"feature1": _int64_feature(f2),
"feature2": _bytes_feature(f3),
"feature3": _float_feature(f4),
}
m = tf.train.Example(features=tf.train.Features(feature=fts))
return m.SerializeToString()
ps = serialize_example(3, True, b"goal", 0.999)
ex_proto = tf.train.Example.FromString(ps)
tf.train.Feature
是被tf.train.Example
兼容的。