Ces bibliothèques sont-elles assez interchangeables?
En regardant ici, https://stackshare.io/stackups/keras-vs-pytorch-vs-scikit-learn , il semble que la principale différence soit le cadre sous-jacent (au moins pour PyTorch).
Oui, il y a une différence majeure.
SciKit Learn est une bibliothèque générale d'apprentissage automatique, construite sur NumPy. Il comporte de nombreux algorithmes d'apprentissage automatique tels que les machines à vecteurs de support, les forêts aléatoires, ainsi que de nombreux utilitaires pour le pré et post-traitement général des données. Ce n'est pas un cadre de réseau neuronal.
PyTorch est un cadre d'apprentissage en profondeur, composé de
Keras est un cadre d'apprentissage en profondeur de niveau supérieur, qui résume de nombreux détails, rendant le code plus simple et plus concis que dans PyTorch ou TensorFlow, au prix d'une piratage limitée. Il résume le backend de calcul, qui peut être TensorFlow, Theano ou CNTK. Il ne prend pas en charge un backend PyTorch, mais ce n'est pas quelque chose d'insondable - vous pouvez le considérer comme un sous-ensemble simplifié et rationalisé de ce qui précède.
En bref, si vous optez pour des algorithmes "classiques" non neuronaux, ni PyTorch ni Keras ne vous seront utiles. Si vous faites du deep learning, scikit-learn peut toujours être utile pour sa partie utilitaire; en dehors de cela, vous aurez besoin du cadre d'apprentissage en profondeur réel, où vous pouvez choisir entre Keras et PyTorch, mais il est peu probable que vous utilisiez les deux en même temps. C'est très subjectif, mais à mon avis, si vous travaillez sur un nouvel algorithme, vous êtes plus susceptible d'utiliser PyTorch (ou TensorFlow ou un autre cadre de niveau inférieur) pour plus de flexibilité. Si vous adaptez un algorithme connu et testé à un nouveau paramètre de problème, vous souhaiterez peut-être utiliser Keras pour sa plus grande simplicité et son niveau d'entrée inférieur.