首页 文章

如何存储在完全卷积网络和RNN中使用的数据?

提问于
浏览
-2

TensorFlow具有parse_single_sequence_example功能,可用于将SequenceExamples(即顺序数据)馈送到RNN中 . 但是,对于我想要在循环模型之外尝试完全卷积模型的问题 . 如何以一种方式存储我的数据,以便将数据轻松管理到卷积模型和循环模型中?

为了提供更多信息,我的数据具有以下形状: [number of samples per minibatch, time steps per sample, number of features] . number of samples per minibatchnumber of features 都是固定的,但 time steps per sample 可以变化(因此我使用动态RNN) . 至少在概念上,应该可以将我的数据重新整形为 [number of samples per minibatch, time steps per sample, number of features, 1] ,并将其视为单通道图像(然后可以通过卷积层传递) . 但是,我对如何解析存储为SequenceExample的数据感到困惑,这种方式可以让我进行这种重塑 .

1 回答

  • 0

    答案取决于您的功能的形状 .

    例如,如果您具有可变长度的特征,每个时间步长具有单个浮点值,例如, (0.1,-4.2,3.0)对于一个示例和(8.2)对于另一个示例,您可以考虑将其存储在tf.Example中 .

    然后,您可以使用FixedLenSequenceFeature解析parse_example以获取填充的Tensor . 使用batch_size为2继续上面的示例:

    [[0.1, -4.2, 3.0], 
     [8.2,  0.0, 0.0]]
    

    如果您希望首先嵌入分类功能,则应使用VarLenFeature获取SparseTensor . 如果每个时间步长只有一个值,则可以将其与tf.Example一起使用 .

    如果您有一个值列表,每个时间步骤SequenceExamples更自然 .

    那么,应该指导选择的更多问题是你的特征具有什么样的形状 . 在输入convolutiondynamic_rnn之前解析之后,您将需要创建具有可变长度序列维度的填充Tensor .

相关问题