Función torch.linspace de PyTorch
Manual de referencia de PyTorch torch
torch.linspaceEs una función de PyTorch que se utiliza para crear tensores de secuencias igualmente espaciadas. Crea un tensor unidimensional que contiene una secuencia igualmente espaciada desde el valor inicial hasta el valor final.
ytorch.arangeA diferencia de,torch.linspaceespecifica el número de elementos en lugar del paso, lo que es muy útil cuando se necesita controlar con precisión el número de elementos.
Definición de la función
torch.linspace(start, end, steps, dtype=None, device=None, requires_grad=False)
Parámetros:
start(float): El valor inicial de la secuencia.end(float): El valor final de la secuencia (incluido).steps(int): El número de elementos en la secuencia, debe ser un entero positivo.dtype(torch.dtype, opcional): Especifica el tipo de datos del tensor.device(torch.device, opcional): Especifica el dispositivo donde se almacena el tensor.requires_grad(bool, opcional): Si se necesita calcular gradientes.
Valor de retorno:
torch.Tensor: Devuelve un tensor unidimensional.
Ejemplos de uso
Ejemplo 1: Crear 5 puntos igualmente espaciados
Ejemplo
import torch
# Crea una secuencia igualmente espaciada de 0 a 10 con un total de 5 puntos
x = torch.linspace(0, 10, 5)
print(x)
# Crea una secuencia igualmente espaciada de 0 a 10 con un total de 5 puntos
x = torch.linspace(0, 10, 5)
print(x)
El resultado de salida es:
tensor([ 0.0000, 2.5000, 5.0000, 7.5000, 10.0000])
Ejemplo 2: Crear 10 puntos
Ejemplo
import torch
# Crea una secuencia igualmente espaciada de -1 a 1 con un total de 10 puntos
x = torch.linspace(-1, 1, 10)
print(x)
# Crea una secuencia igualmente espaciada de -1 a 1 con un total de 10 puntos
x = torch.linspace(-1, 1, 10)
print(x)
El resultado de salida es:
tensor([-1.0000, -0.7778, -0.5556, -0.3333, -0.1111, 0.1111, 0.3333, 0.5556,
0.7778, 1.0000])
Ejemplo 3: Usado para la programación de la tasa de aprendizaje en redes neuronales
Ejemplo
import torch
# Simula la tasa de aprendizaje disminuyendo gradualmente de 0.1 a 0.001
learning_rates = torch.linspace(0.1, 0.001, 100)
print("Tasa de aprendizaje inicial:", learning_rates[0].item())
print("Tasa de aprendizaje final:", learning_rates[-1].item())
# Simula la tasa de aprendizaje disminuyendo gradualmente de 0.1 a 0.001
learning_rates = torch.linspace(0.1, 0.001, 100)
print("Tasa de aprendizaje inicial:", learning_rates[0].item())
print("Tasa de aprendizaje final:", learning_rates[-1].item())
El resultado de salida es:
初始学习率: 0.10000000149011612 最终学习率: 0.0010000000474974513
En este ejemplo, creamos una secuencia que contiene 100 valores de tasa de aprendizaje, que se usa comúnmente para la programación de la tasa de aprendizaje.
Diferencia entre torch.arange y torch.linspace
torch.arange(start, end, step): Crea una secuencia según el paso; el número de elementos está determinado por el rango y el paso.torch.linspace(start, end, steps): Crea una secuencia según el número de elementos; el intervalo está determinado por el rango y el número de elementos.
Otras extensiones