I am beginning work on my MSc thesis where I will study transfer learning in detail and apply it to dermatology. I am only studying and reading papers at this point, but I need to make up my mind about which deep learning framework I will use as soon as possible.
Here are my feelings towards the frameworks I’m considering:
PyTorch: I really like how pythonic the API feels, it looks like a good framework for research and getting work done. I even like how it forces you to write your own training loop. However I envy TensorFlow’s TensorBoard, if it weren’t for that I’d probably settle right now. Is https://github.com/lanpa/tensorboardX any good? It looks very complete, but I’m not sure.
TensorFlow: I have never used it because I feel it’s very verbose and hard to get into. However (a) one of my classes next semester uses TensorFlow exclusively, so I’m gonna have to learn it anyway, (b) it’s very popular so support is a given and TensorBoard is designed specifically for it, (c) I like TensorFlow from a future job perspective.
Keras: Keras is the only framework I have actually worked with and I like it. It’s simple enough that I can iterate quickly and do actual research. But I’d much rather use either PyTorch or TensorFlow directly, rather than an abstraction on top of another framework, purely from a software engineering perspective. It looks like I could easily use TensorBoard with Keras which is nice. But what’s up with Keras being included in TensorFlow as well apparently? Should I use https://www.tensorflow.org/guide/keras or https://keras.io/? That’s really confusing me, what’s the difference?
Can anyone comment and hopefully help me decide?