tensorflow / tensorflow/model-optimization

trainable=False doesn't work for QuantizeWrapperV2

Open
#1,067 1 comment 1 reaction 1 assignee View on GitHub

@cdh4696 is already working on this.

Since May 3, 2023.

bug
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
Setting layer.trainable=False for a QuantizeWrapperV2 wrapped Dense layer doesn't convert all trainable weights to non-trainable.

System information

TensorFlow version (installed from source or binary):
2.12.0

TensorFlow Model Optimization version (installed from source or binary):
0.7.4

Python version:
3.10.11

Describe the expected behavior
Like the normal model, by setting layer.trainable=False for the quantized layer, the layer's weights should all become non-trainable.

Describe the current behavior
After setting layer.trainable=False for a quantized Dense layer, the Dense layer still contains trainable weights.

Code to reproduce the issue
The colab contains the code to reproduce this bug.
https://colab.research.google.com/drive/1KYnZkBI_g3Pu9Vqz4UneXCtNOs3_kB39?usp=sharing

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
The output from the colab is below. Noted that by setting layer.trainable=False, the original model's Dense layer's weights become non-trainable. However, the dense_11/kernel:0 from the Dense layer in the quantized model is still trainable after setting layer.trainable=False.

trainable variables in model:  2
trainable variables in model after setting trainable to false:  0
trainable variables in quantized model:  1
trainable variables in quantized model after setting trainable to false:  1
dense_11/kernel:0

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.