I am currently using the new minibatch interface and I am wandering what a typical example of using update_shared_f would be. As far as I understand it, it’s a function that loads an intermediate minibatch to the GPU memory, supposed to be used for a data set that does not fit entirely into GPU memory. Is that a correct interpretation?
If yes, there is no scheduler for swapping this intermediate batch included in Minibatch and the swapping has to be done by hand by calling update_shared. How would that work in practice? Would I have to stop the training and re-start it with new intermediate minibatch? Or should I use custom callbacks for that? It seems to be partially explained in the docstring but the provided code is far from a working example.
But how does it relate to batch_size? Does batch_size have to be smaller then in_memory_size? If batch_size=10 and in_memory_size=100 how often is the GPU memory swapped?