Pytorch Umformen tensor dimension
Ich habe zum Beispiel 1D-Vektor mit dimension (5). Ich möchte Form in 2D-matrix (1,5).
Hier ist, wie ich es mit numpy
>>> import numpy as np
>>> a = np.array([1,2,3,4,5])
>>> a.shape
(5,)
>>> a = np.reshape(a, (1,5))
>>> a.shape
(1, 5)
>>> a
array([[1, 2, 3, 4, 5]])
>>>
Aber wie kann ich das machen mit Pytorch Tensor (und Variable). Ich will nicht zurück zu schalten, um numpy und wechseln Sie auf Fackel-variable wieder, denn es wird ein Verlust backpropagation Informationen.
Hier ist, was ich in Pytorch
>>> import torch
>>> from torch.autograd import Variable
>>> a = torch.Tensor([1,2,3,4,5])
>>> a
1
2
3
4
5
[torch.FloatTensor of size 5]
>>> a.size()
(5L,)
>>> a_var = variable(a)
>>> a_var = Variable(a)
>>> a_var.size()
(5L,)
.....do some calculation in forward function
>>> a_var.size()
(5L,)
Nun will ich es Größe zu sein (1, 5).
Wie kann ich die Größe ändern oder Umformen, die dimension der pytorch tensor in Variable ohne Verlust grad Informationen. (weil ich Futter in ein anderes Modell vor rückwärts)
InformationsquelleAutor der Frage Haha TTpro | 2017-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
könnten Sie
InformationsquelleAutor der Antwort Lelik
Verwenden Fackel.unsqueeze(input, dim, aus=Keine)
InformationsquelleAutor der Antwort Haha TTpro
oder Sie können diese verwenden, die '-1' bedeutet, dass Sie nicht haben, um geben Sie die Anzahl der Elemente.
InformationsquelleAutor der Antwort Mou Cai
Für in-place - änderung der tensor, sollten Sie auf jeden Fall nutzen
tensor.resize_():
In PyTorch, wenn es ein Unterstrich am Ende einer operation (wie
tensor.resize_()
) dann, dass die operation nichtin-place
Modifikation der ursprünglichen tensor.Können, können Sie auch einfach verwenden
np.newaxis
im Brenner Tensor zur Erhöhung der dimension. Hier ist ein Beispiel:InformationsquelleAutor der Antwort kmario23
Diese Frage wurde ausführlich bereits beantwortet, aber ich möchte hinzufügen für den weniger erfahrenen python-Entwickler, finden Sie vielleicht die
*
Betreiber hilfreich in Verbindung mitview()
.Zum Beispiel, wenn Sie einen bestimmten tensor-Größe, die Sie möchten einen anderen tensor der Daten zu entsprechen, könnten Sie versuchen:
Diese arbeiten mit numpy
shape
zu:InformationsquelleAutor der Antwort saetch_g