Layer up_sampling2d: <class 'tensorflow.python.keras.layers.convolutional.UpSampling2D'> не поддерживается
Я пытаюсь реализовать UNet для семантической сегментации, который может работать на Google Coral edgetpu. Для этого нам нужна квантованная модель, которую можно получить с помощью API tensorflow_model_optimization.
Но при использовании API существует уровень для UpSampling2D, который не поддерживается API с учетом квантования. Вот код для получения квантованной модели из обычной в соответствии с рекомендациями.
from image_segmentation_keras.keras_segmentation.models.unet import vgg_unet
import tensorflow_model_optimization as tfmot
model = vgg_unet(n_classes=4 , input_height=832, input_width=1216 )
quantize_model = tfmot.quantization.keras.quantize_model #q_aware stands for for quantization aware.
q_aware_model = quantize_model(model)
...
o = (Conv2D(512, (3, 3), padding='valid' , data_format=IMAGE_ORDERING))(o)
o = (BatchNormalization())(o)
o = Activation('relu')(o)
o = (UpSampling2D((2, 2), data_format=IMAGE_ORDERING))(o)
o = (concatenate([o, f3], axis=MERGE_AXIS))
o = (ZeroPadding2D((1, 1), data_format=IMAGE_ORDERING))(o)
...
Layer up_sampling2d:<class 'tensorflow.python.keras.layers.convolutional.UpSampling2D'> is not supported.You can quantize this layer by passing a `tfmot.quantization.keras.QuantizeConfig` instance to the `quantize_annotate_layer` API.
Ниже приведены выводы:
- Я пробовал использовать альтернативу up_sampling2d Conv2DTranspose вместо повышающей дискретизации, но похоже, что Conv2DTranspose также не поддерживается.
Layer conv2Dtranspose:<class 'tensorflow.python.keras.layers.convolutional.Conv2DTranspose'> is not supported.
Большинство официальных примеров квантованных моделей Edge TPU не требуют апскейлинга изображения. Например, выходные данные моделей классификации и обнаружения представляют собой либо класс, либо несколько ограничивающих прямоугольников с соответствующими классами.
- Хотя существует пример модели квантования edgetpu для сегментации - на основе Deeplabv3 квантованная сегментация edgetpu, нет никакой помощи относительно архитектуры и того, как было решено апскейлинг.
Любая помощь в этом отношении будет принята с благодарностью.