Fonction torch.linspace de PyTorch
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)
# 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)
# 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())
# 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.
Autres extensions