在 Pytorch 中实现有状态 LSTM/ConvLSTM 的最佳方式?
The best way to implement stateful LSTM/ConvLSTM in Pytorch?
我正在尝试使用 ConvLSTM 提高具有顺序信息的对象检测任务的性能。
典型的 ConvLSTM 模型采用形状为 (samples, time_steps, channels, rows, cols)
的 5D 张量作为输入。
as stated in this post,需要在 Pytorch ConvLSTM 层中将 500 张图像的长序列拆分为更小的片段。例如,它可以分成 10 个片段,每个片段有 50 个时间步长。
我有两个目标:
我想让网络记住 10 个片段序列的状态。 IE。如何在碎片之间传递隐藏状态?
我想输入(视频的)图像一张一张。 IE。 500 张图像的长序列被分成 500 个片段,每个片段只有一张图像。输入应该像 (all_samples, channels, rows, cols)
。这只有在 1.goal 可以实现的情况下才有意义。
我找到了一些关于 Tensorflow 的好答案,但我使用的是 Pytorch。
The best way to pass the LSTM state between batches
在 Pytorch 中实现有状态 LSTM/ConvLSTM 的最佳方法是什么?
我发现this post有一个很好的例子
model = nn.LSTM(input_size = 20, hidden_size = h_size)
out1, (h1,c1) = model(x1)
out2, (h2,c2) = model(x2, (h1,c1))
我正在尝试使用 ConvLSTM 提高具有顺序信息的对象检测任务的性能。
典型的 ConvLSTM 模型采用形状为 (samples, time_steps, channels, rows, cols)
的 5D 张量作为输入。
as stated in this post,需要在 Pytorch ConvLSTM 层中将 500 张图像的长序列拆分为更小的片段。例如,它可以分成 10 个片段,每个片段有 50 个时间步长。
我有两个目标:
我想让网络记住 10 个片段序列的状态。 IE。如何在碎片之间传递隐藏状态?
我想输入(视频的)图像一张一张。 IE。 500 张图像的长序列被分成 500 个片段,每个片段只有一张图像。输入应该像
(all_samples, channels, rows, cols)
。这只有在 1.goal 可以实现的情况下才有意义。
我找到了一些关于 Tensorflow 的好答案,但我使用的是 Pytorch。
The best way to pass the LSTM state between batches
在 Pytorch 中实现有状态 LSTM/ConvLSTM 的最佳方法是什么?
我发现this post有一个很好的例子
model = nn.LSTM(input_size = 20, hidden_size = h_size)
out1, (h1,c1) = model(x1)
out2, (h2,c2) = model(x2, (h1,c1))