Search code examples
tensorflowquantization

Is it impossible to quantization the .tflite file? (OSError Occurred)


I have to try the quantization to my model(tflite).

I want to change float32 to float 16 through the dynamic range quantization.

This is my code:

import tensorflow as tf
import json
import sys
import pprint
from tensorflow import keras
import numpy as np

converter = tf.lite.TFLiteConverter.from_saved_model('models')
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.target_spec.supported_types = [tf.float16]
tflite_quant_model = converter.convert()
open("quant.tflite", "wb").write(tflite_quant_model)

In my MacBook, there is a folder called 'models', which contains two tflite files there.

When I execute the code, the following error occurs:

converter = tf.lite.TFLiteConverter.from_saved_model('quantization')
OSError: SavedModel file does not exist at: models/{saved_model.pbtxt|saved_model.pb}

I checked most of the posts in stack overflow, but I couldn't find a solution.

Please review my code and give me some advice.

I uploaded my tflite file because I guess it would be necessary to check if there was a problem.

This is my model(download link):

https://drive.google.com/file/d/13gft7bREsv2vZYFvfoCiP5ndxHkfGKIM/view?usp=sharing

Thank you so much.


Solution

  • The tf.lite.TFLiteConverter.from_saved_model function takes a tensorflow (.pb) model as a parameter. On the other hand, you give a tensorflowlite (.tflite) model, which necessarily leads to an error. If you want to convert your model to float 16, the only way I know of is to take the original model in ".pb" format and you convert it as you want