Spec-Zone.ru › PyTorch 2.14

torch.Tensor.to

Tensor.to(*args, **kwargs) → Tensor

Выполняет преобразование типа данных и/или устройства тензора. torch.dtype и torch.device определяются на основе аргументов self.to(*args, **kwargs).

Примечание

Если тензор self уже имеет нужные torch.dtype и torch.device, возвращается self. В противном случае возвращаемый тензор является копией self с нужными torch.dtype и torch.device.

Примечание

Если для self требуются градиенты (requires_grad=True), но указанный целевой dtype является целочисленным типом, для возвращаемого тензора неявно устанавливается requires_grad=False. Это связано с тем, что градиенты могут требоваться только для тензоров с типами данных с плавающей точкой или комплексными типами данных.

Вызвать to можно следующими способами:

to(dtype, non_blocking=False, copy=False, memory_format=torch.preserve_format) → Tensor

Возвращает тензор с указанным dtype

Аргументы:

memory_format (torch.memory_format, необязательно): желаемый формат памяти возвращаемого тензора. По умолчанию: torch.preserve_format.

Примечание

Согласно правилам преобразования типов C++, при преобразовании значения с плавающей точкой в целочисленный тип дробная часть отбрасывается. Если полученное после усечения значение не помещается в целевой тип (например, при преобразовании torch.inf в torch.long), поведение не определено, и результат может различаться на разных платформах.

torch.to(device=None, dtype=None, non_blocking=False, copy=False, memory_format=torch.preserve_format) → Tensor

Возвращает тензор с указанными device и (необязательно) dtype. Если dtype равно None, оно определяется как self.dtype. Если non_blocking установлено в True, функция по возможности пытается выполнить преобразование асинхронно относительно хоста. Такое асинхронное поведение применяется как к закреплённой, так и к страничной памяти. Однако при использовании этой возможности следует соблюдать осторожность. Подробнее см. в руководстве по правильному использованию non_blocking и pin_memory. Если установлено copy, новый тензор создаётся, даже если тензор уже соответствует нужному преобразованию.

Аргументы:

memory_format (torch.memory_format, необязательно): желаемый формат памяти возвращаемого тензора. По умолчанию: torch.preserve_format.

torch.to(other, non_blocking=False, copy=False) → Tensor

Возвращает тензор с теми же torch.dtype и torch.device, что и у тензора other. Если non_blocking установлено в True, функция по возможности пытается выполнить преобразование асинхронно относительно хоста. Такое асинхронное поведение применяется как к закреплённой, так и к страничной памяти. Однако при использовании этой возможности следует соблюдать осторожность. Подробнее см. в руководстве по правильному использованию non_blocking и pin_memory. Если установлено copy, новый тензор создаётся, даже если тензор уже соответствует нужному преобразованию.

Примечание

Если non_blocking равно True и преобразование выполняется в потоке CUDA, отличном от потока по умолчанию, вызывающий код отвечает за правильную синхронизацию между потоками. Описание необходимого шаблона см. в разделе потоки CUDA.

Пример:

>>> tensor = torch.randn(2, 2)  # Initially dtype=float32, device=cpu
>>> tensor.to(torch.float64)
tensor([[-0.5044,  0.0005],
        [ 0.3310, -0.0584]], dtype=torch.float64)

>>> cuda0 = torch.device('cuda:0')
>>> tensor.to(cuda0)
tensor([[-0.5044,  0.0005],
        [ 0.3310, -0.0584]], device='cuda:0')

>>> tensor.to(cuda0, dtype=torch.float64)
tensor([[-0.5044,  0.0005],
        [ 0.3310, -0.0584]], dtype=torch.float64, device='cuda:0')

>>> other = torch.randn((), dtype=torch.float64, device=cuda0)
>>> tensor.to(other, non_blocking=True)
tensor([[-0.5044,  0.0005],
        [ 0.3310, -0.0584]], dtype=torch.float64, device='cuda:0')

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.Tensor.to.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API