在TFRecord文件中存储/读取数据以训练预测模型的最佳实践是什么?我想建立一个模型,根据机器的历史健康数据(例如,电机组的历史数据,包括每个电机的速度、错误率、故障等(来预测单个机器(例如,电动机(的健康状况。
我可以使用Apache Beam/Dataflow进行整个预处理(规范数据、估算缺失值、设计新功能、拆分以训练/验证/测试集等(。但我在想,也许最好将原始数据存储为.tfcrecord文件,并使用TFX进行归一化、插补等操作,以使实验更容易。TFX tensorflow_transform当前不支持tf.SequenceExample文件。因此,我想将原始数据存储为tf。每个记录的示例文件格式如下:
example_proto = tf.train.Example(features=tf.train.Features(feature={
'timestamp': tf.train.Feature(int64_list=tf.train.Int64List(
value=[1601200000, 1601200060, 1601200120, ...])),
'feature0': tf.train.Feature(float_list=tf.train.FloatList(
value=[np.nan, 15523.0, np.nan, ...])),
'feature1': tf.train.Feature(float_list=tf.train.FloatList(
value=[1.0, -8.0, np.nan, ...])),
...
'label': tf.train.Feature(float_list=tf.train.FloatList(
value=[0.5, -10.3, 2.1, ...])),
}))
你觉得怎么样?有什么建议吗?
TFX 0.23.0在某些组件中添加了对TF.ExampleSequence的支持。
你也可以使用TF。例如,按照你描述的方式使用列表。如果你需要根据你的TF给你的模型提供一个序列。例如,你需要使用TF.transform来堆叠和重塑读取的值。
float32 = tf.reshape(
tf.stack(...),
[-1, timesteps, features)])