gpt4 book ai didi

deep-learning - Pytorch 中 LSTM 的可变大小输入

转载 作者:行者123 更新时间:2023-12-04 11:21:33 24 4
gpt4 key购买 nike

我正在使用可变长度视频的特征来训练一层 LSTM。视频大小从 10 帧变为 35 帧。我使用的批量大小为 1。
我有以下代码:

lstm_model = LSTMModel(4096, 4096, 1, 64)
for step, (video_features, label) in enumerate(data_loader):
bx = Variable(score.view(-1, len(video_features), len(video_features[0]))) #examples = 1x12x4096, 1x5x4096
output = lstm_model(bx)

LSTM模型是;
class LSTMModel(nn.Module):
def __init__(self, input_size, hidden_size, num_layers, num_classes):
super(LSTMModel, self).__init__()
self.l1 = nn.LSTM(input_size=input_size, hidden_size=hidden_size, num_layers=num_layers, batch_first=True)
self.out = nn.Linear(hidden_size, num_classes)
def forward(self, x):
r_out, (h_n, h_c) = self.l1(x, None) #None represents zero initial hidden state
out = self.out(r_out[:, -1, :])
return out

我只是想问;我是否正确地使用可变大小输入训练 LSTM。代码工作正常,损失减少,但我不确定我是否在做正确的事情。因为我之前没有在 Pytorch 中使用过 LSTM。

最佳答案

是的,您的代码是正确的,并且始终适用于 1 的批量大小。但是,如果您想使用 1 以外的批量大小,则需要将可变大小的输入打包到一个序列中,然后在 LSTM 之后解包.您可以在 my answer to a similar question 中找到更多详细信息.

附言- 您应该将此类问题发布到 codereview

关于deep-learning - Pytorch 中 LSTM 的可变大小输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49832739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com