PyTorch torch.linspace Funktion


Pytorch torch 参考手册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)

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)

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())

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.

Pytorch torch 参考手册PyTorch torch Referenzhandbuch

Andere Erweiterungen