Al utilizar la funcion torch.clone() de PyTorch, ¿el tensor resultante mantiene los gradientes del tensor original?
No, al utilizar la función torch.clone() de PyTorch, el tensor resultante es una copia superficial del tensor original, es decir, se copian los valores y la estructura del tensor, pero no se copian los gradientes. Esto significa que si bien el tensor clonado tendrá los mismos valores que el tensor original, los gradientes no se propagarán hacia atrás a través del tensor clonado.

Si se desea clonar un tensor y mantener los gradientes, se debe utilizar la función tensor.clone().detach() en lugar de torch.clone(). La función detach() crea una nueva Variable que no tiene un historial de gradiente, lo que significa que los gradientes no se propagarán hacia atrás a través de ella. Sin embargo, el nuevo tensor seguirá siendo parte del mismo gráfico computacional que el tensor original, lo que significa que los gradientes del tensor original aún se pueden propagar hacia atrás a través de los tensores clonados utilizando la función backward().