【发布时间】:2019-01-09 07:04:23
【问题描述】:
我使用 PyTorch 在 VGG-16 模型中进行卷积后添加了一个 LSTM 层。随着时间的推移,模型学习得很好。然而,在仅添加一个由 32 个 LSTM 单元组成的 LSTM 层后,训练和评估的过程需要大约 10 倍的时间。
我将 LSTM 层添加到 VGG 框架中,如下所示
def make_layers(cfg, batch_norm=False):
# print("Making layers!")
layers = []
in_channels = 3
count=0
for v in cfg:
count+=1
if v == 'M':
layers += [nn.MaxPool2d(kernel_size=2, stride=2)]
else:
conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=1)
if batch_norm:
layers += [conv2d, nn.BatchNorm2d(v), nn.ReLU(inplace=True)]
else:
layers += [conv2d, nn.ReLU(inplace=True)]
in_channels=v
if count==5:
rlstm =RLSTM(v)
rlstm=rlstm.cuda()
layers+=[rlstm]
RLSTM 是我的自定义类,它实现了 Google 的 Pixel RNN 论文中的 RowLSTM。
这是一个常见问题吗? LSTM 层一般只需要很长时间来训练吗?
【问题讨论】:
标签: python performance machine-learning lstm pytorch