You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 am building a model that returns feature embedding as an output.
I used MobileNetV3Largs as a baseline with include_top=False option.
after the baseline, I have few layers and concat them at the end of the model.
When I tried to apply QAT on the model though, it returns the error saying:
TypeError: 'str' object is not callable
System information
TensorFlow version (installed from source or binary):
2.15.0
TensorFlow Model Optimization version (installed from source or binary):
0.7.5
Python version:
3.11.7
Describe the expected behavior
QAT model generated well.
Describe the current behavior
TypeError: 'str' object is not callable
Code to reproduce the issue
Provide a reproducible code that is the bare minimum necessary to generate the
problem.
defbuild_model(args, include_preprocessing=False):
IMG_SHAPE= (args.input_dim, args.input_dim, 3)
# Transfer learning model with MobileNetV3base_model=tf.keras.applications.MobileNetV3Large(
input_shape=IMG_SHAPE,
include_top=False,
weights='imagenet',
minimalistic=True,
include_preprocessing=include_preprocessing
)
# Freeze the pre-trained model weightsbase_model.trainable=Falsecl1=CustomLayer()(base_model.output)
cl1=tf.keras.layers.Dropout(0.2, name="dropout_cl1")(cl1)
cl2=CustomLayer()(base_model.output)
cl2=tf.keras.layers.Dropout(0.2, name="dropout_gd2")(gd2)
cl3=CustomLayer()(base_model.output)
cl3=tf.keras.layers.Dropout(0.2, name="dropout_cl1")(cl3)
concat_cls=tf.keras.layers.Concatenate()([cl1, cl2, cl3])
x=tf.keras.layers.Dense(512, activation='swish')(concat_cls) # No activation on final dense layermodel=tf.keras.Model(base_model.input, x)
returnmodel# This is initial training loop before QAT --> this returns few epoch trained modelmodel=build_model(args)
model=initial_training(args, model)
defapply_quantization_to_dense(layer):
ifisinstance(layer, tf.keras.layers.Dense):
returntfmot.quantization.keras.quantize_annotate_layer(layer)
returnlayerannotated_model=tf.keras.models.clone_model(
model,
clone_function=apply_quantization_to_dense,
)
quant_aware_model=tfmot.quantization.keras.quantize_apply(annotated_model)
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered:
Thanks for the response. due to the policy, I am not able to share the full code or reproducible colab.
But I can share the CustomLayer implementation I guess. Below is the one that I am using.
classCustomLayer(tf.keras.layers.Layer):
def__init__(self, p=1, **kwargs):
super(CustomLayer, self).__init__(**kwargs)
self.p=pdefcall(self, inputs):
assertlen(inputs.shape) ==4, 'the input tensor of CustomLayer must be the shape of [B, H, W, C]'ifself.p==1:
returntf.reduce_mean(inputs, axis=[1, 2])
elifself.p==float('inf'):
returntf.reshape(tf.reduce_max(inputs, axis=[1, 2]), shape=[-1, inputs.shape[-1]])
else:
sum_value=tf.reduce_mean(tf.pow(inputs, self.p), axis=[1, 2])
returntf.sign(sum_value) *tf.pow(tf.abs(sum_value), 1.0/self.p)
defget_config(self):
config=super(CustomLayer, self).get_config()
config.update({"p": self.p})
returnconfig
please feel free to tell me if any other things are needed!
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 am building a model that returns feature embedding as an output.
I used MobileNetV3Largs as a baseline with
include_top=False
option.after the baseline, I have few layers and concat them at the end of the model.
When I tried to apply QAT on the model though, it returns the error saying:
System information
TensorFlow version (installed from source or binary):
2.15.0
TensorFlow Model Optimization version (installed from source or binary):
0.7.5
Python version:
3.11.7
Describe the expected behavior
QAT model generated well.
Describe the current behavior
Code to reproduce the issue
Provide a reproducible code that is the bare minimum necessary to generate the
problem.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: