La misma forma, y solo una es la imagen
chw = np.transpose(photo, (2, 0, 1)) # (3, 512, 512) — correcto
wrong = photo.reshape(3, 512, 512) # (3, 512, 512) — destrozado
Ambos dan la forma (3, 512, 512). Solo uno es la imagen.
Una comprobación de forma pasa en los dos, y por eso este error sobrevive a la revisión de código. Lo que sí lo detecta es una comprobación de valor: elige una coordenada y confirma que el número que cae ahí es el que querías.