pinocchio:

I still don’t understand why .clone() exists. It seems useless.


Well identity is just a wrapper for clone 

But the underlying memory the share is the same, right? So in effect it looks like they are truly the same except that python isn’t aware of it…right?

There are three cases here:

Same Tensor object
Different Tensor object but looking at the same memory (a view)
Different Tensor object looking at different memory.

For example:
You get the first one when you do new = base
You can get the second one by doing new = base.view_as(base)
You can get the third one by doing new = base.clone()