TensorFlow, PyTorch, and JAX: Choosing a deep learning framework