Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regarding Some Potential Issues, Warnings and Changes in Code due to Tensorflow and Keras Version Change #648

Open
Shailya-Ds-Or opened this issue May 9, 2024 · 3 comments

Comments

@Shailya-Ds-Or
Copy link

Current Tensorflow Version: 2.16.1
Current Keras Version: 3.3.2

  1. Providing input shape in first layer of the model, be it any type of layer (Dense / Conv2D) throws a warning telling to add InputLayer separately to mention input shape. Use InputLayer as the first Layer.
1
  1. Explicitly convert steps_per_epoch int (Using int()) to avoid "Ran out of Training" Error in case value provided in parameter isn,t integer.

  2. !wget doesn't work in Jupyter Notebook. Use "import wget" works.

2
  1. Using tensorflow_hub.KerasLayer to get pretrained model from Tensorflow Hub and using it as a Layer in Sequential Model gives an error "ValueError: Only instances of keras.Layer can be added to a Sequential model. Received: <tensorflow_hub.keras_layer.KerasLayer object at 0x7a4ac7e30f40> (of type <class 'tensorflow_hub.keras_layer.KerasLayer'>)".
3

I didn't find any specific reason for this but general understanding i got from searching is this issue developed after keras got updated to Version 3 and the issue is not yet resolved.

One simple solution that worked for me is setting environment variable "TF_USE_LEGACY_KERAS = 1" at top of the notebook works. ( Tells tensorflow to use older keras version in the notebook where the environment variable is set).
4

  1. Using Pre-Trained Models from "tf.keras.applications" results in some pretty horrible accuracy when used with own data (same code provides great accuracy when used in colab, which uses tensorflow version 2.15 currently and hence older keras version).
    I didn't find any specific reason for this too, but setting environment variable "TF_USE_LEGACY_KERAS = 1" works at top of the notebook works.
@AnilKamath27
Copy link

Hi, Shailya. Are you able to fit the model after explicitly being able to convert steps_per_epoch to int to avoid running out of data? The value provided to the eteps_per_epoch is already an integer in my case.

This doesn't work in the Tf 2.17.0 version. So, I had to create another env for tf 2.15.0 that works like the videos without converting to int.

Screenshot 2024-08-04 102548

@Shailya-Ds-Or
Copy link
Author

Maybe you need to use len(training data) / batch size if you have used batching while preparing training data.
Also, yes the issue still persists in 2.17, I guess. Downgrading to 2.15 is best option. Or you can use legacy keras environment variable like I mentioned if you don't want to download.

@JSisam54
Copy link

JSisam54 commented Sep 4, 2024

Hi Shailya, Thank you SO much for solving a glitch in my notebook. I imported "os" at the beginning of my notebook and set "os.environ["TF_USE_LEGACY_KERAS"] = "1" like you suggested and it worked!! : )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants