Storing them as Variables only helps to control the backpropagation Flow. That doesn‘t seem to be an issue exept if you are backpropagating through the whole recursive cnns.
Correct me if im wrong, but during training the gradients have to be allocated, so its normal that the Memory usage increases.
Are the extracted Features in the List Stored as cuda tensors? Maybe transferring them with .cpu() helps. You can call them back to cuda if you Need them.
Its probably not a python memory leak. Have you tried to Train on cpu?
On phone so sry for Upper case.