【问题标题】:Tensorflow: jointly training CNN + LSTMTensorflow:联合训练CNN+LSTM
【发布时间】:2017-06-17 18:35:30
【问题描述】:

关于如何在 TF 中单独使用 LSTM 的例子很多,但是我找不到任何关于如何联合训练 CNN + LSTM 的好例子。 在我看来,如何进行这样的训练并不是很简单,我可以在这里想到几个选项:

  • 首先,我认为最简单的解决方案(或最原始的解决方案)是独立训练 CNN 以学习特征,然后在不更新 CNN 部分的情况下在 CNN 特征上训练 LSTM,因为可能必须提取并保存这些numpy 中的特征,然后将它们提供给 TF 中的 LSTM。但在这种情况下,可能不得不使用不同标记的数据集来进行 CNN 的预训练,这消除了端到端训练的优势,即学习 LSTM 所针对的最终目标的特征(除了必须拥有这些首先是附加标签)。
  • 第二个选项是连接批处理中的所有时间片 维度(4-d 张量),将其提供给 CNN,然后以某种方式重新打包 训练 LSTM 所需的 5-d 张量特征,然后应用成本函数。我主要关心的是,是否有可能做这样的事情。此外,处理可变长度序列变得有点棘手。例如,在预测场景中,您一次只能输入单帧。因此,如果这是进行联合训练的正确方式,我会很高兴看到一些例子。除此之外,这个解决方案看起来更像是一个 hack,因此,如果有更好的方法可以做到这一点,如果有人可以分享它会很棒。

提前谢谢你!

【问题讨论】:

    标签: tensorflow deep-learning convolution lstm recurrent-neural-network


    【解决方案1】:

    对于联合训练,您可以考虑使用文档https://www.tensorflow.org/api_docs/python/tf/map_fn 中描述的 tf.map_fn。

    让我们假设 CNN 是按照此处https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10.py 中描述的类似路线构建的。

    def joint_inference(sequence):
        inference_fn = lambda image: inference(image)
        logit_sequence = tf.map_fn(inference_fn, sequence, dtype=tf.float32, swap_memory=True)
        lstm_cell = tf.contrib.rnn.LSTMCell(128)
        output_state, intermediate_state = tf.nn.dynamic_rnn(cell=lstm_cell, inputs=logit_sequence)
        projection_function = lambda state: tf.contrib.layers.linear(state, num_outputs=num_classes, activation_fn=tf.nn.sigmoid)
        projection_logits = tf.map_fn(projection_function, output_state)
        return projection_logits
    

    警告:如果您的模型大于 gpu 可以分配的内存,您可能必须按照此处https://www.tensorflow.org/tutorials/using_gpu 所述查看设备放置。

    另一种方法是展平视频批次以创建图像批次,从 CNN 执行前向传递并重塑 LSTM 的特征。

    【讨论】:

    • 第一个示例中的sequenceinference 是什么?对于第二种选择,我们没有一些边界问题吗?
    • sequence 将是视频序列,inference 是为 CNN 进行前向传递的函数。您能否详细说明边界问题?
    • 关于边框我的意思是在原始情况下,我们在边框上填充零,当我们连接图像时,我们将在较小的图像之间的大图像上有边缘,也许这不是一个问题,但绝对有区别。
    猜你喜欢
    • 2020-01-20
    • 1970-01-01
    • 2017-12-30
    • 2018-04-13
    • 2017-01-08
    • 2018-09-04
    • 2016-06-20
    • 2016-03-14
    • 2021-05-14
    相关资源
    最近更新 更多