Hi,I have couple questions to ask , before showing my question I write an simple code first:
a = torch.tensor(2.0,requires_grad=True)
c = a*5 
c.backward()  #After back prop,the buffer would be deleted 

And if we do it once again,
c.backward()

Apparently, it would give :
RuntimeError: Trying to backward through the graph a second time, but the buffers have already been freed. Specify retain_graph=True when calling backward the first time.

So the questions are :
1.What does deleting(free) buffer or temporary variable mean ? Does it mean we can’t use those tensors or functions anymore?
2.Can you please show a simple example to show or check if the buffers and temporary variable are deleted after backward?
3.Based on :

if the user keeps a reference to the object, it won’t be destroyed as it can be used by someone else

How do we prevent the buffer or temporary variable being freed after backward?
I really appreciate all your help!