TensorFlow具有parse_single_sequence_example函数,该函数可用于将SequenceExamples(即顺序数据)提供给RNN。但是,对于我正在处理的问题,除了经常性模型之外,我还想尝试完全卷积模型。我如何以一种能够将数据轻松管道化到卷积模型和经常性模型的方式来存储数据?如何存储数据以用于完全卷积网络以及RNN?
要提供更多信息,我的数据具有以下形状:[number of samples per minibatch, time steps per sample, number of features]
。 number of samples per minibatch
和number of features
都是固定的,但time steps per sample
可以不同(因此我使用动态RNN)。至少在概念上,应该可以将我的数据重塑为[number of samples per minibatch, time steps per sample, number of features, 1]
,并将其视为类似于单通道图像(然后可以通过卷积层传递)。然而,我很困惑我将如何解析存储为SequenceExample的数据,以便让我做这种重塑。
感谢评论!我更新了我的原始帖子,以澄清我的问题。我没有可变长度的特征,而是可变长度的时间步长。我不相信我可以使用FixedLenSequenceFeature,除非我愿意将我的所有数据零填充,但我不想这样做,因为我的最长序列比我的最短序列多一个数量级。 –
要获得输入到dynamic_rnn或卷积中,您需要一个形状的张量[批次,时间,特征](批次和时间都可以是静态未知的)。此时你别无选择,只能垫。具有parse_example的FixedLenSequenceFeature会为您填充(您可能需要跟踪单独的特征中的序列长度)。但是对于大于1的特征,您可能会发现SequenceExample更直观。要减少填充,请尝试[bucket_by_sequence_length](https://www.tensorflow.org/versions/master/api_docs/python/tf/contrib/training/bucket_by_sequence_length)。 –