Функция PyTorch torch.linspace


Pytorch torch 参考手册Справочное руководство Pytorch torch

torch.linspaceЭто функция в PyTorch, используемая для создания тензоров равномерно распределенной последовательности. Она создает одномерный тензор, содержащий равномерно распределенную последовательность от начального значения до конечного значения.

иtorch.arangeОтличается,torch.linspaceОн задает количество элементов, а не размер шага, что очень полезно, когда требуется точный контроль над количеством элементов.

Определение функции

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

Parameters:

  • start(float): начальное значение последовательности.
  • end(float): конечное значение последовательности (включительно).
  • steps(int): количество элементов в последовательности, должно быть положительным целым числом.
  • dtype(torch.dtype, необязательно): Указывает тип данных тензора.
  • device(torch.device, необязательно): Указывает устройство, на котором хранится тензор.
  • requires_grad(bool, необязательно): нужно ли вычислять градиенты.

Возвращаемое значение:

  • torch.Tensor: Возвращает одномерный тензор.

Примеры использования

Пример 1: Создать 5 равноудалённых точек

Пример

import torch

# Создать равномерно распределённую последовательность от 0 до 10 всего из 5 точек
x = torch.linspace(0, 10, 5)

print(x)

Результат вывода:

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

Пример 2: Создать 10 точек

Пример

import torch

# Создать равномерно распределённую последовательность от -1 до 1 всего из 10 точек
x = torch.linspace(-1, 1, 10)

print(x)

Результат вывода:

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

Пример 3: Используется для планирования скорости обучения нейронной сети

Пример

import torch

# Имитировать постепенное уменьшение скорости обучения с 0.1 до 0.001
learning_rates = torch.linspace(0.1, 0.001, 100)

print("Начальная скорость обучения:", learning_rates[0].item())
print("Конечная скорость обучения:", learning_rates[-1].item())

Результат вывода:

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

В этом примере мы создали последовательность, содержащую 100 значений скорости обучения, что обычно используется для планирования скорости обучения.


Разница между torch.arange и torch.linspace

  • torch.arange(start, end, step): Создает последовательность на основе размера шага; количество элементов определяется диапазоном и размером шага.
  • torch.linspace(start, end, steps): Создает последовательность на основе количества элементов; интервал определяется диапазоном и количеством элементов.

Pytorch torch 参考手册Справочное руководство Pytorch torch

Другие расширения