fs8*_*s86 5 convolution deep-learning lstm tensorflow recurrent-neural-network
关于如何在 TF 中单独使用 LSTM 的例子有很多,但我找不到任何关于如何联合训练 CNN + LSTM 的好例子。就我所见,如何进行此类培训并不是很简单,我可以在这里想到一些选择:
先感谢您 !
对于联合训练,您可以考虑使用 tf.map_fn,如文档https://www.tensorflow.org/api_docs/python/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
Run Code Online (Sandbox Code Playgroud)
警告:如果您的模型大于 GPU 可以分配的内存,您可能需要按照此处所述查看设备布局https://www.tensorflow.org/tutorials/using_gpu 。
另一种选择是展平视频批次以创建图像批次,从 CNN 进行前向传播并重塑 LSTM 的特征。
| 归档时间: |
|
| 查看次数: |
4435 次 |
| 最近记录: |