Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

520
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!