La fragmentación de TF es real, pero Keras 3 ha venido a unificar. Ahora puedes escribir el mismo código y ejecutarlo en TensorFlow, JAX o PyTorch como backends. Eso es un golpe sobre la mesa. En lugar de elegir un framework, eliges Keras y cambias el backend según convenga. Esa abstracción es lo que muchos pedíamos desde hace años.
Si te preocupa el futuro, aprender Keras 3 te da una capa de seguridad. Luego, si necesitas optimizar, bajas al backend que quieras. PyTorch puro está bien, pero Keras 3 es más agnóstico. Aquí tienes un ejemplo de lo simple que es:
import keras
from keras import layers
model = keras.Sequential([
layers.Dense(64, activation='relu'),
layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='categorical_crossentropy')
Eso funciona en cualquier backend. ¿Puede PyTorch hacer eso? No de serie.