Итак, я тренирую эту небольшую модель 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
Что на самом деле делает QuantizeWrapperV2? ⇐ Python
Программы на Python
-
Anonymous
1729895810
Anonymous
Итак, я тренирую эту небольшую модель CNN, которая имеет несколько слоев Conv2D и несколько слоев MaxPool2D, Activations, Dense, в основном базовых слоев, которые предоставляет Tensorflow.
Я хочу, чтобы он работал во встроенной системе, которая не имеет много места и не может выполнять вычисления с плавающей запятой.
Поэтому я пытался провести обучение QAT (обучение с учетом квантования) с моделью, чтобы веса (в конечном итоге) были квантованы до 8-бит, и я использую tfmot.quantization.keras.QuantizeWrapperV2.
< strong>Мне не удалось понять количество параметров и действия (математические), которые он выполняет для каждого типа слоя, и мне хотелось бы получить некоторую помощь в понимании недокументированных математических операций, предоставляемых этим API.
Ниже приведено краткое описание одной и той же модели: с QAT и без. в столбце Param # есть разница, которую я не могу понять.
Спасибо за помощь.
Вот сводная информация о модели [b]БЕЗ[/b] примененного 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
_________________________________________________________________
Вот краткое описание модели, [b]С применением[/b] 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
_________________________________________________________________
Подробнее здесь: [url]https://stackoverflow.com/questions/79127484/what-does-quantizewrapperv2-actually-do[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия