PyTorch torch.tensor Funktion


Pytorch torch 参考手册PyTorch torch-Referenzhandbuch

torch.tensorEs ist die Kernfunktion in PyTorch zum Erstellen von Tensoren. Sie erstellt einen neuen Tensor durch Kopieren von Daten und behält nicht den automatischen Gradientenverlauf der Originaldaten bei.

Dies ist eine der am häufigsten verwendeten Methoden zum Erstellen von PyTorch-Tensoren und eignet sich für die meisten Szenarien.

Funktionsdefinition

torch.tensor(data, dtype=None, device=None, requires_grad=False, pin_memory=False)

Parameters:

  • data(beliebiger Typ): Die Daten des Tensors, die eine Python-Liste, ein Tupel, ein NumPy-Array usw. sein können.
  • dtype(torch.dtype, optional): Gibt den Datentyp des Tensors an, wie z. B.torch.float32、torch.int64usw.
  • device(torch.device, optional): Gibt das Gerät an, auf dem der Tensor gespeichert wird, wie z. B.torch.device('cpu')odertorch.device('cuda')。
  • requires_grad(bool, optional): Ob ein Gradient berechnet werden muss; Standardwert istFalse。
  • pin_memory(bool, optional): Ob pinned memory verwendet werden soll; Standardwert istFalse。

Rückgabewert:

  • torch.TensorGibt einen PyTorch-Tensor zurück.

Anwendungsbeispiele

Im Folgenden finden Sie einige Beispiele für die Verwendung dertorch.tensorFunktion.

Beispiel 1: Erstellen eines Tensors aus einer Liste

Beispiel

import torch

# Erstellen eines 1D-Tensors aus einer Python-Liste
data = [1, 2, 3, 4, 5]
x = torch.tensor(data)

print(x)
print(x.dtype)

Die Ausgabe ist:

tensor([1, 2, 3, 4, 5])
torch.int64

In diesem Beispiel haben wir einen 1D-Tensor aus einer Python-Liste erstellt. PyTorch leitet den Datentyp automatisch ab alsint64。

Beispiel 2: Angeben des Datentyps

Beispiel

import torch

# Einen Tensor vom Typ float32 erstellen
x = torch.tensor([1.0, 2.0, 3.0], dtype=torch.float32)

print(x)
print(x.dtype)

Die Ausgabe ist:

tensor([1., 2., 3.])
torch.float32

In diesem Beispiel haben wir den Datentyp des Tensors explizit angegeben alsfloat32。

Beispiel 3: Erstellen eines Tensors, der Gradienten erfordert

Beispiel

import torch

# Erstellen eines Tensors, der die Gradientenberechnung benötigt
x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)

print(x.requires_grad)

Die Ausgabe ist:

True

In diesem Beispiel haben wir einen Tensor erstellt, der die Gradientenberechnung erfordert, was beim Training neuronaler Netzwerke sehr nützlich ist.

Beispiel 4: Erstellen eines Tensors aus einer 2D-Liste

Beispiel

import torch

# Erstellen eines 2D-Tensors (Matrix) aus einer 2D-Liste
data = [[1, 2, 3], [4, 5, 6]]
x = torch.tensor(data)

print(x)
print(x.shape)

Die Ausgabe ist:

tensor([[1, 2, 3],
        [4, 5, 6]])
torch.Size([2, 3])

In diesem Beispiel haben wir einen 2x3 2D-Tensor aus einer 2D-Liste erstellt.

Beispiel 5: Erstellen eines Tensors auf einem CUDA-Gerät

Beispiel

import torch

# Überprüfen, ob CUDA verfügbar ist
if torch.cuda.is_available():
    # Erstellen eines Tensors auf einem CUDA-Gerät
    x = torch.tensor([1, 2, 3], device='cuda')
    print(x.device)
else:
    print("CUDA ist nicht verfügbar")

Die Ausgabe ist:

cuda:0

In diesem Beispiel prüfen wir, ob CUDA verfügbar ist, und erstellen dann einen Tensor auf der GPU.


Unterschied zwischen torch.tensor und torch.as_tensor

torch.tensorundtorch.as_tensorBeide werden zum Erstellen von Tensoren verwendet, aber sie haben wichtige Unterschiede:

  • torch.tensorKopiert immer die Daten; der erstellte Tensor teilt keinen Speicher mit den Originaldaten.
  • torch.as_tensorTeilt Daten so weit wie möglich, kopiert den Speicher nicht und kopiert nur, wenn nötig.

Wenn Sie den Autograd-Verlauf beibehalten oder unnötiges Kopieren von Daten vermeiden möchten, können Sietorch.as_tensor。


Hinweise

  • torch.tensorEs kopiert die Daten, sodass sich Änderungen am zurückgegebenen Tensor nicht auf die Originaldaten auswirken.
  • Wenn Sie einen neuen Tensor mit derselben Form und demselben Gerät wie ein anderer Tensor erstellen müssen, können Sietorch.zeros_like()odertorch.ones_like()。
  • Wenn Sie beim Erstellen eines Tensors nichtdtype, wird PyTorch den Datentyp automatisch ableiten.

Pytorch torch 参考手册PyTorch torch-Referenzhandbuch

Andere Erweiterungen