应用 TF-IDF 并将每个文档转换为 1*2000(特征),所以我的文档总数为 10824,稀疏矩阵为 10824 * 2000,相关标签的形状为 10824 * 35(35 个标签中的每个 0 或 1 个)
谁能帮助我,如何将它们存储到 TFRecordDataset(特征和标签)中?
应用 TF-IDF 并将每个文档转换为 1*2000(特征),所以我的文档总数为 10824,稀疏矩阵为 10824 * 2000,相关标签的形状为 10824 * 35(35 个标签中的每个 0 或 1 个)
谁能帮助我,如何将它们存储到 TFRecordDataset(特征和标签)中?
您可以使用tensorflow.Example
proto来存储特征和标签。对于一个具体示例,文档应如下所示:
features: {
feature: {
key : "features"
value: {
bytes_list: {
value: ["this", "is", "an", "example", "of", "your", "features"]
}
}
}
feature: {
key : "labels"
value: {
bytes_list: {
# Assume "news" and "sports" are two of your 35 labels.
value: ["news", "sports"]
}
}
}
}
(如果您已经将字符串转换为整数 (ID),则可以使用int64_list
代替,bytes_list
并且以后不需要使用词汇文件。)
现在你的整个数据集是一个TFRecordDataset
原型tensorflow.Example
。您可以使用tf.dataset
API来读取和解析,如下所示:
d = tf.data.TFRecordDataset(FLAGS.input_file)
d = d.map(parser_fn)
你只需要写一个parser_fn
using tf.parse_example
。您的feature_spec
遗嘱如下所示:
feature_spec = {
"token": tf.VarLenFeature(tf.string),
"labels": tf.VarLenFeature(tf.string),
}
由于特征和标签的稀疏性质,您可能需要使用分类词汇列或嵌入列在Estimator
. 有关更多详细信息,请参阅https://www.tensorflow.org/guide/feature_columns。