Custom Models, Layers, and Loss Functions with TensorFlow