Función torch.expand_as de PyTorch


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

torch.expand_asEs una función en PyTorch que se utiliza para expandir un tensor al mismo tamaño que otro tensor. Estorch.expanduna versión conveniente que utiliza automáticamente el tamaño del tensor de referencia para la expansión.

Definición de la función

torch.expand_as(other)

Parámetros:

  • other(Tensor): el tensor de referencia, el tensor actual se expandirá al mismo tamaño que este tensor.

Valor de retorno:

  • torch.Tensor: Devuelve una vista del tensor expandido.

Ejemplos de uso

Ejemplo

import torch

# Crear un vector
x = torch.tensor([1, 2, 3, 4])

# Crear una matriz objetivo
other = torch.randn(3, 4)

# Expandir x a la misma forma que other
y = x.expand_as(other)

print("Forma del vector original:", x.shape)
print("Forma del tensor de referencia:", other.shape)
print("Forma después de la expansión:", y.shape)
print("nTensor expandido:")
print(y)

El resultado de salida es:

原始向量形状: torch.Size([4])
参考张量形状: torch.Size([3, 4])
扩展后形状: torch.Size([3, 4])

扩展后的张量:
tensor([[1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4]])

Ejemplo

import torch

# Crear un vector columna
x = torch.tensor([[1], [2], [3]])

# Crear un tensor 3D objetivo
other = torch.randn(3, 4, 5)

# Expandir x a la misma forma que other
y = x.expand_as(other)

print("Forma del vector columna original:", x.shape)
print("Forma del tensor de referencia:", other.shape)
print("Forma después de la expansión:", y.shape)

El resultado de salida es:

原始列向量形状: torch.Size([3, 1])
参考张量形状: torch.Size([3, 4, 5])
扩展后形状: torch.Size([3, 4, 5])

Ejemplo

import torch

# Ejemplo de aplicación en redes neuronales
# Supongamos que hay un vector de sesgo que necesita transmitirse al mapa de características
bias = torch.tensor([0.1, 0.2, 0.3])  # Sesgo para 3 canales

# Simular el mapa de características de salida de la convolución (batch, channel, height, width)
feature_map = torch.randn(8, 3, 32, 32)

# Expandir el sesgo a la misma forma que el mapa de características
bias_expanded = bias.expand_as(feature_map)

print("Forma del sesgo:", bias.shape)
print("Forma del mapa de características:", feature_map.shape)
print("Forma del sesgo expandido:", bias_expanded.shape)

# Añadir el sesgo
output = feature_map + bias_expanded
print("nForma de salida después de añadir el sesgo:", output.shape)

El resultado de salida es:

偏置形状: torch.Size([3])
特征图形状: torch.Size([8, 3, 32, 32])
扩展后偏置形状: torch.Size([8, 3, 32, 32])

加上偏置后的输出形状: torch.Size([8, 3, 32, 32])

Nota:torch.expand_asSolo se pueden expandir dimensiones de tamaño 1 a dimensiones más grandes.otherEl tamaño del tensor debe ser compatible con el tamaño expandido (es decir, las dimensiones del tensor actual pueden expandirse mediante transmisión al tamaño objetivo). Se devuelve una vista, no una copia.


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

Otras extensiones