我正在用PyTorch实现ELMo。我想在字矩阵上提供具有不同过滤器映射大小的ELMo的CNN,但我正在考虑一种有效的方法。这是我的代码:
# fill the empty tensor iteratively
batch_size = word.size(0)
y = torch.zeros(batch_size, self.kernel_dim)
cnt = 0
for kernel in self.kernels:
temp = kernel(word)
pooled = torch.max(temp, dim=2)[0]
y[:, cnt:cnt+pooled.size(1)] = pooled
cnt += pooled.size(1)
# Using torch.cat
y = []
for kernel in kernels:
temp = kernel(a)
y.append(torch.max(temp, dim=2)[0]) # max pooling
y = torch.cat(y, dim=1)
我有两个问题。第一个是“是否有一种将输入并行传送到图层的方法?”。这使我避免了循环迭代,从而使我的代码更高效。第二个是“在使用torch.cat
和填充空张量之间更快的一个。