问题描述
将数据存储到TFRecord文件中或从中读取数据以训练预测模型的最佳实践是什么?我想建立一个模型,根据其历史运行状况数据(例如,来自一组电动机的历史数据,包括每个电动机的转速,错误率,故障,等)。
我可以使用Apache Beam / Dataflow进行整个预处理(标准化数据,估算缺失值,设计新功能,拆分以训练/验证/测试集等)。但是我在想,也许最好将原始数据存储为.tfrecord文件,并使用TFX进行规范化,插补等操作,以使实验更加容易。 TFX tensorflow_transform currently doesn't support tf.SequenceExample files。因此,我正在考虑将原始数据存储为tf.Example文件,每个记录都采用以下格式:
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,...
'label': tf.train.Feature(float_list=tf.train.FloatList(
value=[0.5,-10.3,2.1,}))
您怎么看?有提示吗?
解决方法
TFX 0.23.0在某些组件中增加了对TF.ExampleSequence的支持。
您也可以使用TF.Example以描述方式使用列表。如果您需要根据TF向模型中输入序列,例如,您将需要使用TF.transform来对输入的值进行叠加和整形。
float32 = tf.reshape(
tf.stack(...),[-1,timesteps,features)])