tensorflow / tensorflow/model-optimization
quantize_model() cannot detect a keras.Sequential model
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.6k
- Forks
- 349
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 1
Description
Prior to filing: check that this should be a bug instead of a feature request. Everything supported, including the compatible versions of TensorFlow, is listed in the overview page of each technique. For example, the overview page of quantization-aware training is here. An issue for anything not supported should be a feature request.
Describe the bug
I'm passing a keras sequential model into quantize_model(), and I'm getting the error that the model isn't a sequential model.
System information
Carried out in:
Google Colab
TensorFlow version (installed from source or binary):
2.17.0
TensorFlow Model Optimization version (installed from source or binary):
0.8.0
Python version:
3.10.12
Describe the expected behavior
prepare a keras sequential model built from scratch that was imported via load_model()
Describe the current behavior
ValueError: to_quantize can only either be a keras Sequential or Functional model.
Code to reproduce the issue
!pip install tensorflow_model_optimization
import pandas as pd
import numpy as np
import time
import tensorflow as tf
import os
import tempfile
import keras
import tensorflow_model_optimization as tfmot
from google.colab import drive
from tensorflow.keras.models import load_model
drive.mount('/content/drive')
%cd /content/drive/My Drive/CS528/HW3
model = load_model('/content/drive/My Drive/CS528/HW3/q1_model.keras')
quant_aware_model_tflite = '/content/drive/My Drive/CS528/HW3/s_mnist_quant_aware_training.tflite'
quantize_model = tfmot.quantization.keras.quantize_model
q_aware_model = quantize_model(model)
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
I've already checked the same compound conditional using the imported model just before calling quantize_model(), and it behaves as it should. Only when quantize_model() is actually handling the model does it seem to think the model isn't a tf.keras.Sequential object.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the reported failure with TensorFlow 2.17.0, TensorFlow Model Optimization 0.8.0, and the loaded model from load_model(). Read the quantize_model() entry point and its Sequential or Functional model check. Done means a keras.Sequential model loaded from a .keras file is accepted, with regression coverage for the reported case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- keras, python, tensorflow
- Domain
- machine-learning
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100