Función torch.linspace de PyTorch


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

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)

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

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.

Pytorch torch 参考手册Manual de referencia de Pytorch torch

Otras extensiones