Many Machine Learning job postings I've seen request experience with Tensorflow. If I have experience with Tensorflow, but only through building neural networks using the Keras API. Does that count?

I have yet to see a tutorial or any code anywhere that uses Tensorflow without the Keras API, so I don't see how one learns Tensorflow strictly. But then why don't employers just request experience with the Keras API?


Currently, Keras is part of Tensorflow, so if you are using the Keras that comes bundled with Tensorflow (tf.keras), technically one is a subset of the other. This was not always like that (see this), so if you are using the old version of Keras that is a separate package, then technically it hides the complexity of Tensorflow, so your experience would be only Keras.

About tutorials not using the Keras API (I understand that you are referring to using model.compile, model.fit, etc), you should understand that tutorials are normally introductory material, which makes using only Keras a sensible decision, avoiding the rougher Tensorflow reality (static graph vs. eager execution, sessions, etc). Bare Tensorflow (no model.fit) is used all over the place for real-world use.

Anyway, in the end, it is up to employers to decide whether your experience fits their needs.

  • $\begingroup$ Thanks for your response! My ultimate goal is to determine whether I should be seeking out bare Tensorflow tutorials. Do you think knowledge of bare Tensorflow is required to be able to check the Tensorflow box? $\endgroup$ Jan 28 at 22:55
  • $\begingroup$ I would encourage you to seek bare Tensorflow knowledge, as I think the paradigm is quite different from Keras-only. I would not consider the "Tensorflow box" empty, but half-full knowing just Keras, and I would encourage you to pursue jobs demanding Tensorflow knowledge right away. $\endgroup$
    – noe
    Jan 29 at 7:38

There are two parts to it.

  1. Does Keras means Tensorflow = Yes
  2. Does Tensorflow means Keras = No

Keras is part of the TensorFlow API now. It was not so earlier

From Keras official docs -

Keras is a deep learning API written in Python, running on top of the machine learning platform TensorFlow. It was developed with a focus on enabling fast experimentation. Being able to go from idea to result as fast as possible is key to doing good research.

Keras & TensorFlow 2
TensorFlow 2 is an end-to-end, open-source machine learning platform. You can think of it as an infrastructure layer for differentiable programming.
It combines four key abilities:
- Efficiently executing low-level tensor operations on CPU, GPU, or TPU.
- Computing the gradient of arbitrary differentiable expressions.
- Scaling computation to many devices (e.g. the Summit supercomputer at Oak Ridge National Lab, which spans 27,000 GPUs).
- Exporting programs ("graphs") to external runtimes such as servers, browsers, mobile, and embedded devices.

So, multiple things remain if you have to work on a large dataset/program

  • Handling large dataset i.e. tf.data
  • Distributed training, Performance tuning
  • Tensorflow function, Graph, GradientTape
  • TensorFlow serving i.e. post modeling stuffs
  • Tensorflow for Browser, Edge, Mobile

If modeling(only) is the point of discussion, you are good.


In my opinion, Yes.

I think you can treat Keras as Tensorflow since this API has been commonly used. When you really got into the advanced field of machine learning, you probably will work further with PyTorch or Tensorflow.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.