5 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
我相信您正在關(guān)注Pruning in Keras Example
并跳入Fine-tune pre-trained model with pruning
部分而沒有設(shè)置可修剪層。您必須重新實(shí)例化模型并設(shè)置您希望設(shè)置為的圖層prunable
。請按照本指南了解有關(guān)如何設(shè)置可修剪層的更多信息。
https://www.tensorflow.org/model_optimization/guide/pruning/comprehensive_guide.md

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
如下保存模型并重新加載對我有用。
_, keras_file = tempfile.mkstemp('.h5')
tf.keras.models.save_model(model, keras_file, include_optimizer=False)
print('Saved baseline model to:', keras_file)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
今天有同樣的問題,它的以下錯(cuò)誤。
如果您不想修剪該層或不關(guān)心它,您可以使用此代碼僅修剪模型中的可修剪層:
from tensorflow_model_optimization.python.core.sparsity.keras import prunable_layer
from tensorflow_model_optimization.python.core.sparsity.keras import prune_registry
def apply_pruning_to_prunable_layers(layer):
if isinstance(layer, prunable_layer.PrunableLayer) or hasattr(layer, 'get_prunable_weights') or prune_registry.PruneRegistry.supports(layer):
return tfmot.sparsity.keras.prune_low_magnitude(layer)
print("Not Prunable: ", layer)
return layer
model_for_pruning = tf.keras.models.clone_model(
base_model,
clone_function=apply_pruning_to_pruneable_layers
)

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊
我遇到了同樣的問題:
張量流版本:
2.2.0
只是更新tensorflow的版本就2.3.0
解決了這個(gè)問題,我認(rèn)為Tensorflow在2.3.0中增加了對這個(gè)特性的支持。

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
我發(fā)現(xiàn)的一件事是我添加到模型中的實(shí)驗(yàn)性預(yù)處理引發(fā)了這個(gè)錯(cuò)誤。我在模型的開頭使用它來幫助添加更多訓(xùn)練樣本,但 keras 修剪代碼不喜歡這樣的子類模型。同樣,代碼不喜歡我對圖像居中所做的實(shí)驗(yàn)性預(yù)處理。從模型中刪除預(yù)處理為我解決了這個(gè)問題。
def classificationModel(trainImgs, testImgs):
L2_lambda = 0.01
data_augmentation = tf.keras.Sequential(
[ layers.experimental.preprocessing.RandomFlip("horizontal", input_shape=IM_DIMS),
layers.experimental.preprocessing.RandomRotation(0.1),
layers.experimental.preprocessing.RandomZoom(0.1),])
model = tf.keras.Sequential()
model.add(data_augmentation)
model.add(layers.experimental.preprocessing.Rescaling(1./255, input_shape=IM_DIMS))
...
添加回答
舉報(bào)