Custom and Distributed Training with TensorFlow