Hi @mrshenli, the reason is that this function is part of the internal framework and other programmers should be able to setup the arguments how they require and train() is only responsible for the loop.