Можем ли мы обрезать предварительно обученную модель? Пример: MobileNetV2 - PullRequest
1 голос
/ 25 мая 2020

Я пытаюсь обрезать предварительно обученную модель: MobileNetV2 и получил эту ошибку. Пытался поискать в Интернете, но ничего не понял. Я использую Google Colab .

Это мой импорт.

import tensorflow as tf
import tensorflow_model_optimization as tfmot
import tensorflow_datasets as tfds
from tensorflow import keras

import os
import numpy as np
import matplotlib.pyplot as plt
import tempfile
import zipfile

Это мой код.

model_1 = keras.Sequential([
    basemodel,
    keras.layers.GlobalAveragePooling2D(),
    keras.layers.Dense(1)                            
])

model_1.compile(optimizer='adam',
                loss=keras.losses.BinaryCrossentropy(from_logits=True),
                metrics=['accuracy'])

model_1.fit(train_batches,
            epochs=5,
            validation_data=valid_batches)

prune_low_magnitude = tfmot.sparsity.keras.prune_low_magnitude

pruning_params = {
    'pruning_schedule': tfmot.sparsity.keras.PolynomialDecay(initial_sparsity=0.50,
                                                             final_sparsity=0.80,
                                                             begin_step=0,
                                                             end_step=end_step)
}


model_2 = prune_low_magnitude(model_1, **pruning_params)

model_2.compile(optmizer='adam',
                loss=keres.losses.BinaryCrossentropy(from_logits=True),
                metrics=['accuracy'])

Это ошибка, которую я получаю.

---> 12 model_2 = prune_low_magnitude(model, **pruning_params)

ValueError: Please initialize `Prune` with a supported layer. Layers should either be a `PrunableLayer` instance, or should be supported by the PruneRegistry. You passed: <class 'tensorflow.python.keras.engine.training.Model'>

1 Ответ

0 голосов
/ 25 мая 2020

Я полагаю, что вы следите за Pruning in Keras Example и перешли в раздел Fine-tune pre-trained model with pruning, не установив слои для обрезки. Вы должны восстановить модель и установить слои, которые вы sh установили как prunable. Следуйте этому руководству для получения дополнительной информации о том, как установить отсекаемые слои.

https://www.tensorflow.org/model_optimization/guide/pruning/comprehensive_guide.md

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...