Proč tensor.view () nefunguje v pytorch?

hlasů
4

Mám následující kus kódu.

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)

Poslední řádek kódu mi dává následující chybu.

RuntimeError: nekonzistentní tenzorový velikosti na /data/users/soumith/miniconda2/conda-bld/pytorch-0.1.9_1487344852722/work/torch/lib/THC/generic/THCTensorMath.cu:141

Upozorňujeme, že když jsem tisku tvary tenzorových na řádku č. 3, I am prospěch následující výstup.

torch.size([1, 300]) torch.size([1, 1, 300]) 

Proto jsem stále [1, 300]tvar pro embeddedtenzorem přestože jsem použil metodu pohledu jako view(1, 1, -1)?

Jakýkoliv pomoci chtěl bych být ocenil!

Položena 17/03/2017 v 18:42
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

embeddedbyl 3d-tensor a hiddenbyl n-tice ze dvou prvků (skryté stavy a buněčné států), kde každý prvek je 3D-tensor. hiddenbyl výstup z LSTM vrstvy. V PyTorch, LSTM vrátí skryté stavy [N] a buněčné stavy [c], jako n-tice, které mě donutilo zmatená o chybě.

Takže jsem aktualizoval poslední řádek kódu takto a problém vyřešil.

concatenated_output = torch.cat((embedded, hidden[0]), 1)
Odpovězeno 03/06/2017 v 22:28
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more