Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

515
Vistas
¿Cuál es la diferencia entre view() y unsqueeze() en Torch?

Uso de unsqueeze() :

 input = torch.Tensor(2, 4, 3) # input: 2 x 4 x 3 print(input.unsqueeze(0).size()) # prints - torch.size([1, 2, 4, 3])

Uso de view() :

 input = torch.Tensor(2, 4, 3) # input: 2 x 4 x 3 print(input.view(1, -1, -1, -1).size()) # prints - torch.size([1, 2, 4, 3])

De acuerdo con la documentación, unsqueeze() inserta singleton dim en la posición dada como parámetro y view() crea una vista con diferentes dimensiones del almacenamiento asociado con tensor .

Lo que hace view() es claro para mí, pero no puedo distinguirlo de unsqueeze() . Además, no entiendo cuándo usar view() y cuándo usar unsqueeze() .

¡Cualquier ayuda con una buena explicación sería apreciada!

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

view() solo puede tomar un único argumento -1 .

Por lo tanto, si desea agregar una dimensión singleton, deberá proporcionar todas las dimensiones como argumentos. Por ejemplo, si A es un tensor de 2x3x4, para agregar una dimensión singleton, necesitaría hacer A:view(2, 1, 3, 4) .

Sin embargo, a veces, la dimensionalidad de la entrada se desconoce cuando se utiliza la operación. Por lo tanto, no sabemos que A es 2x3x4, pero aun así nos gustaría insertar una dimensión singleton. Esto sucede mucho cuando se utilizan minilotes de tensores, donde la última dimensión suele ser desconocida. En estos casos, el nn.Unsqueeze es útil y nos permite insertar la dimensión sin tener en cuenta explícitamente las otras dimensiones al escribir el código.

over 4 years ago · Santiago Trujillo Denunciar

0

unsqueeze() es un caso especial de view()

Para mayor comodidad, muchas bibliotecas de Python tienen alias abreviados para usos comunes de funciones más generales.

  • view() cambia la forma de un tensor a la forma especificada
  • unsqueeze() remodela un tensor agregando una nueva dimensión de profundidad 1
    (es decir, convertir un tensor nd en un tensor n+1.d)

¿Cuándo usar unsqueeze() ?

Algunos ejemplos de casos de uso:

  • Tiene un modelo diseñado para admitir tensores de imagen RGB (3d: CxHxW ), pero sus datos son imágenes en escala de grises 2d ( HxW )
  • Su modelo está diseñado para recibir lotes de datos ( batch_size x dim1 x dim2 x ... ), y desea alimentarlo con una sola muestra (es decir, un lote de tamaño 1).
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda