つまり、テンソルの値と構造はコピーされますが、勾配はコピーされません。つまり、クローンされたテンソルは元のテンソルと同じ値を持ちますが、勾配はクローンされたテンソルを逆伝搬しません。

勾配を保持したままテンソルをクローンしたい場合は、torch.clone()の代わりにtensor.clone().detach()関数を使うべきである。detach()関数は、勾配の履歴を持たない新しいVariableを作成します。しかし、新しいテンソルは元のテンソルと同じ計算グラフの一部になります。つまり、元のテンソルからの勾配は、backward()関数を使用して、クローン化されたテンソルを逆伝播することができます。
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().