Hi,
Yes the point here is that the convolution does not save the input but an intermediary result (namely the version of the input that has been preprocessed so that convolution becomes a MM).
For example if you do a * b and try the same thing as above, you will see that the gradient is influenced by changing a.data.
As a general idea, changing .data of a Variable after it’s been used is going to lead to weird / wrong result so that should not be done ! Do you have a use case where you want to do it?