Что на самом деле делает QuantizeWrapperV2?Python

Программы на Python
Ответить
Anonymous
 Что на самом деле делает QuantizeWrapperV2?

Сообщение Anonymous »

Итак, я тренирую эту небольшую модель CNN, которая имеет несколько слоев Conv2D и несколько слоев MaxPool2D, Activations, Dense, в основном базовых слоев, которые предоставляет Tensorflow.
Я хочу, чтобы он работал во встроенной системе, которая не имеет много места и не может выполнять вычисления с плавающей запятой.
Поэтому я пытался провести обучение QAT (обучение с учетом квантования) с моделью, чтобы веса (в конечном итоге) были квантованы до 8-бит, и я использую tfmot.quantization.keras.QuantizeWrapperV2.
< strong>Мне не удалось понять количество параметров и действия (математические), которые он выполняет для каждого типа слоя, и мне хотелось бы получить некоторую помощь в понимании недокументированных математических операций, предоставляемых этим API.
Ниже приведено краткое описание одной и той же модели: с QAT и без. в столбце Param # есть разница, которую я не могу понять.
Спасибо за помощь.
Вот сводная информация о модели БЕЗ примененного QAT:
Layer (type) Output Shape Param #
=================================================================
input_2 (InputLayer) [(None, 56, 56, 1)] 0

conv2d_3 (Conv2D) (None, 54, 54, 30) 300

activation_3 (Activation) (None, 54, 54, 30) 0

max_pooling2d_2 (MaxPooling (None, 27, 27, 30) 0
2D)

conv2d_4 (Conv2D) (None, 25, 25, 16) 4336

activation_4 (Activation) (None, 25, 25, 16) 0

max_pooling2d_3 (MaxPooling (None, 12, 12, 16) 0
2D)

conv2d_5 (Conv2D) (None, 10, 10, 16) 2320

activation_5 (Activation) (None, 10, 10, 16) 0

global_average_pooling2d_1 (None, 16) 0
(GlobalAveragePooling2D)

dense (Dense) (None, 8) 136

activation_6 (Activation) (None, 8) 0

dense_1 (Dense) (None, 1) 9

activation_7 (Activation) (None, 1) 0

=================================================================
Total params: 7,101
Trainable params: 7,101
Non-trainable params: 0
_________________________________________________________________

Вот краткое описание модели, С применением QAT:
Layer (type) Output Shape Param #
=================================================================
input_2 (InputLayer) [(None, 56, 56, 1)] 0

quantize_layer_1 (QuantizeL (None, 56, 56, 1) 3
ayer)

quant_conv2d_3 (QuantizeWra (None, 54, 54, 30) 301
pperV2)

quant_activation_3 (Quantiz (None, 54, 54, 30) 3
eWrapperV2)

quant_max_pooling2d_2 (Quan (None, 27, 27, 30) 1
tizeWrapperV2)

quant_conv2d_4 (QuantizeWra (None, 25, 25, 16) 4337
pperV2)

quant_activation_4 (Quantiz (None, 25, 25, 16) 3
eWrapperV2)

quant_max_pooling2d_3 (Quan (None, 12, 12, 16) 1
tizeWrapperV2)

quant_conv2d_5 (QuantizeWra (None, 10, 10, 16) 2321
pperV2)

quant_activation_5 (Quantiz (None, 10, 10, 16) 3
eWrapperV2)

quant_global_average_poolin (None, 16) 3
g2d_1 (QuantizeWrapperV2)

quant_dense (QuantizeWrappe (None, 8) 137
rV2)

quant_activation_6 (Quantiz (None, 8) 3
eWrapperV2)

quant_dense_1 (QuantizeWrap (None, 1) 14
perV2)

quant_activation_7 (Quantiz (None, 1) 1
eWrapperV2)

=================================================================
Total params: 7,131
Trainable params: 7,101
Non-trainable params: 30
_________________________________________________________________


Подробнее здесь: https://stackoverflow.com/questions/791 ... ctually-do
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»