PyTorch torch.linspace Funktion
PyTorch torch Referenzhandbuch
torch.linspaceEs ist eine Funktion in PyTorch, die verwendet wird, um Tensoren mit gleichmäßig beabstandeten Sequenzen zu erstellen. Sie erstellt einen eindimensionalen Tensor, der eine gleichmäßig beabstandete Sequenz vom Startwert bis zum Endwert enthält.
undtorch.arangeAnders,torch.linspaceEs gibt die Anzahl der Elemente statt der Schrittweite an, was sehr nützlich ist, wenn Sie eine präzise Kontrolle über die Anzahl der Elemente benötigen.
Funktionsdefinition
torch.linspace(start, end, steps, dtype=None, device=None, requires_grad=False)
Parameters:
start(float): Der Startwert der Sequenz.end(float): Der Endwert der Sequenz (inklusive).steps(int): Die Anzahl der Elemente in der Sequenz, muss eine positive Ganzzahl sein.dtype(torch.dtype, optional): Gibt den Datentyp des Tensors an.device(torch.device, optional): Gibt das Gerät an, auf dem der Tensor gespeichert ist.requires_grad(bool, optional): Gibt an, ob Gradienten berechnet werden müssen.
Rückgabewert:
torch.Tensor: Gibt einen eindimensionalen Tensor zurück.
Anwendungsbeispiele
Beispiel 1: 5 gleichmäßig verteilte Punkte erstellen
Beispiel
import torch
# Erzeuge eine gleichmäßig verteilte Sequenz von 0 bis 10 mit insgesamt 5 Punkten
x = torch.linspace(0, 10, 5)
print(x)
# Erzeuge eine gleichmäßig verteilte Sequenz von 0 bis 10 mit insgesamt 5 Punkten
x = torch.linspace(0, 10, 5)
print(x)
Das Ausgabeergebnis ist:
tensor([ 0.0000, 2.5000, 5.0000, 7.5000, 10.0000])
Beispiel 2: 10 Punkte erstellen
Beispiel
import torch
# Erzeuge eine gleichmäßig verteilte Sequenz von -1 bis 1 mit insgesamt 10 Punkten
x = torch.linspace(-1, 1, 10)
print(x)
# Erzeuge eine gleichmäßig verteilte Sequenz von -1 bis 1 mit insgesamt 10 Punkten
x = torch.linspace(-1, 1, 10)
print(x)
Das Ausgabeergebnis ist:
tensor([-1.0000, -0.7778, -0.5556, -0.3333, -0.1111, 0.1111, 0.3333, 0.5556,
0.7778, 1.0000])
Beispiel 3: Verwendung für die Lernratenplanung neuronaler Netze
Beispiel
import torch
# Simuliere, dass die Lernrate allmählich von 0.1 auf 0.001 abnimmt
learning_rates = torch.linspace(0.1, 0.001, 100)
print("Anfängliche Lernrate:", learning_rates[0].item())
print("Endgültige Lernrate:", learning_rates[-1].item())
# Simuliere, dass die Lernrate allmählich von 0.1 auf 0.001 abnimmt
learning_rates = torch.linspace(0.1, 0.001, 100)
print("Anfängliche Lernrate:", learning_rates[0].item())
print("Endgültige Lernrate:", learning_rates[-1].item())
Das Ausgabeergebnis ist:
初始学习率: 0.10000000149011612 最终学习率: 0.0010000000474974513
In diesem Beispiel haben wir eine Sequenz mit 100 Lernratenwerten erstellt, die häufig für die Lernratenplanung verwendet wird.
Unterschied zwischen torch.arange und torch.linspace
torch.arange(start, end, step): Erstellt eine Sequenz basierend auf der Schrittgröße; die Anzahl der Elemente wird durch den Bereich und die Schrittgröße bestimmt.torch.linspace(start, end, steps): Erstellt eine Sequenz basierend auf der Anzahl der Elemente; das Intervall wird durch den Bereich und die Anzahl der Elemente bestimmt.
Andere Erweiterungen