OSError: SavedModel file does not exist at: C:\Users\Munib\New folder/{saved_model.pbtxt|saved_model.pb}

Viewed 33827

I wanted to use my keras trained model in android studio. I got this code on internet to convert my code from keras to tensorflow-lite. But when i tried code i got this error:

OSError: SavedModel file does not exist at: C:\Users\Munib\New folder/{saved_model.pbtxt|saved_model.pb}

The code i used from converting from keras to tensorflow-lite:

import tensorflow as tf
# Converting a SavedModel to a TensorFlow Lite model.
saved_model_dir = r"C:\Users\Munib\New folder"
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()

# Converting a tf.Keras model to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()

# Converting ConcreteFunctions to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_concrete_functions([func])
tflite_model = converter.convert()
6 Answers

First of all it's best to use relative path instead of absolute path. second, if you use model.save('my_model') then keras will create a directory for you with the name my_model in which you should find a file with the pb or pbtxt extension, this is the directory you should use for tflite converter

I also faced this problem when working on google Colab. It seemed, my Colab lose the directory path data where the model is located. Simply run these two lines again and try again. Hopefully, that'll solve the problem :

import os
os.chdir("/content/drive/My Drive/path/to/your/model")

Just sharing my thought: I also got an error while I tried to run the bert encoder and preprocessor model. I ran last time when it's look like this.

bert_preprocess = hub.KerasLayer("https://tfhub.dev/tensorflow/bert_en_uncased_preprocess/3")
bert_encoder = hub.KerasLayer("https://tfhub.dev/tensorflow/bert_en_uncased_L-12_H-768_A-12/4")

It's giving errors while I am trying to run the same after a week. To resolve this issue I download the .tar file and pass the file path to resolve the issue.

bert_preprocess = hub.KerasLayer("<path>/bert_en_uncased_preprocess_3.tar")
bert_encoder = hub.KerasLayer("<path>/bert_en_uncased_L-12_H-768_A-12_4.tar")

I faced this problem with tensorflow installation under conda environment. Uninstalling h5py installed from pip and reinstall it using conda solve my problem.

pip uninstall h5py
conda install h5py

The directory path should end with saved_model. For example, In your case it should be C:/Users/Munib/New folder/saved_model

you have to specify just the directory name where metedata.pb and model.pb is automatically stored for its successful run it not just model.pb but also metadata.pb

Related