Hello,
thanks for checking into this.
I am using pyro 0.3.3 .
The implementation of “train” is copied below.
def train(svi, loader, use_cuda=False,verbose=False):
epoch_loss = 0.
for x, _ in loader:
# if on GPU put mini-batch into CUDA memory
if use_cuda:
x = x.cuda()
loss = svi.step(x)
if(verbose):
print("loss=%.5f" %(loss))
epoch_loss += loss
return epoch_loss / len(loader.dataset)
You can actually checkout my entire code in this github repository.
In the pyro implementation I am not stepping the scheduler since this post “LR scheduler usage - #2 by jpchen” says that this is done automatically.