Fonction torch.linspace de PyTorch


Pytorch torch 参考手册Manuel de référence Pytorch torch

torch.linspaceC'est une fonction de PyTorch utilisée pour créer des tenseurs de séquence régulièrement espacés. Elle crée un tenseur unidimensionnel contenant une séquence régulièrement espacée de la valeur de début à la valeur de fin.

ettorch.arangeDifférent,torch.linspaceIl spécifie le nombre d'éléments plutôt que la taille du pas, ce qui est très utile lorsque vous avez besoin d'un contrôle précis sur le nombre d'éléments.

Définition de fonction

torch.linspace(start, end, steps, dtype=None, device=None, requires_grad=False)

Parameters:

  • start(float) : La valeur de départ de la séquence.
  • end(float) : La valeur finale de la séquence (incluse).
  • steps(int) : Le nombre d’éléments dans la séquence, doit être un entier positif.
  • dtype(torch.dtype, optionnel) : Spécifie le type de données du tenseur.
  • device(torch.device, optionnel) : Spécifie le périphérique sur lequel le tenseur est stocké.
  • requires_grad(bool, facultatif) : Indique si les gradients doivent être calculés.

Valeur de retour:

  • torch.Tensor: Renvoie un tenseur unidimensionnel.

Exemples d'utilisation

Exemple 1 : Créer 5 points équidistants

Exemple

import torch

# Créer une séquence équidistante de 0 à 10 avec un total de 5 points
x = torch.linspace(0, 10, 5)

print(x)

Le résultat de sortie est:

tensor([ 0.0000,  2.5000,  5.0000,  7.5000, 10.0000])

Exemple 2 : Créer 10 points

Exemple

import torch

# Créer une séquence équidistante de -1 à 1 avec un total de 10 points
x = torch.linspace(-1, 1, 10)

print(x)

Le résultat de sortie est:

tensor([-1.0000, -0.7778, -0.5556, -0.3333, -0.1111,  0.1111,  0.3333,  0.5556,
         0.7778,  1.0000])

Exemple 3 : Utilisé pour la planification du taux d’apprentissage d’un réseau de neurones

Exemple

import torch

# Simuler la diminution progressive du taux d’apprentissage de 0.1 à 0.001
learning_rates = torch.linspace(0.1, 0.001, 100)

print("Taux d'apprentissage initial :", learning_rates[0].item())
print("Taux d'apprentissage final :", learning_rates[-1].item())

Le résultat de sortie est:

初始学习率: 0.10000000149011612
最终学习率: 0.0010000000474974513

Dans cet exemple, nous avons créé une séquence contenant 100 valeurs de taux d'apprentissage, ce qui est couramment utilisé pour la planification du taux d'apprentissage.


Différence entre torch.arange et torch.linspace

  • torch.arange(start, end, step): Crée une séquence basée sur la taille du pas ; le nombre d'éléments est déterminé par la plage et la taille du pas.
  • torch.linspace(start, end, steps): Crée une séquence basée sur le nombre d'éléments ; l'intervalle est déterminé par la plage et le nombre d'éléments.

Pytorch torch 参考手册Manuel de référence Pytorch torch

Autres extensions