为什么 tensor.view() 在 pytorch 中不起作用?
Why tensor.view() is not working in pytorch?
我有如下一段代码。
embedded = self.embedding(input).view(1, 1, -1)
embedded = self.drop(embedded)
print(embedded[0].size(), hidden[0].size())
concatenated_output = torch.cat((embedded[0], hidden[0]), 1)
代码的最后一行出现以下错误。
RuntimeError: inconsistent tensor sizes at /data/users/soumith/miniconda2/conda-bld/pytorch-0.1.9_1487344852722/work/torch/lib/THC/generic/THCTensorMath.cu:141
请注意,当我在第 1 行打印张量形状时。 3,我得到以下输出。
torch.size([1, 300]) torch.size([1, 1, 300])
为什么我得到 embedded
张量的 [1, 300]
形状,即使我使用视图方法作为 view(1, 1, -1)
?
如有任何帮助,我们将不胜感激!
embedded
是一个 3d 张量,hidden
是两个元素(隐藏状态和单元状态)的元组,其中每个元素都是一个 3d 张量。 hidden
是 LSTM 层的输出。在 PyTorch 中,LSTM returns 隐藏状态 [h] 和单元状态 [c] 作为一个元组,这让我对错误感到困惑。
所以,我更新了最后一行代码,问题解决了。
concatenated_output = torch.cat((embedded, hidden[0]), 1)
我有如下一段代码。
embedded = self.embedding(input).view(1, 1, -1)
embedded = self.drop(embedded)
print(embedded[0].size(), hidden[0].size())
concatenated_output = torch.cat((embedded[0], hidden[0]), 1)
代码的最后一行出现以下错误。
RuntimeError: inconsistent tensor sizes at /data/users/soumith/miniconda2/conda-bld/pytorch-0.1.9_1487344852722/work/torch/lib/THC/generic/THCTensorMath.cu:141
请注意,当我在第 1 行打印张量形状时。 3,我得到以下输出。
torch.size([1, 300]) torch.size([1, 1, 300])
为什么我得到 embedded
张量的 [1, 300]
形状,即使我使用视图方法作为 view(1, 1, -1)
?
如有任何帮助,我们将不胜感激!
embedded
是一个 3d 张量,hidden
是两个元素(隐藏状态和单元状态)的元组,其中每个元素都是一个 3d 张量。 hidden
是 LSTM 层的输出。在 PyTorch 中,LSTM returns 隐藏状态 [h] 和单元状态 [c] 作为一个元组,这让我对错误感到困惑。
所以,我更新了最后一行代码,问题解决了。
concatenated_output = torch.cat((embedded, hidden[0]), 1)