我有 keras 预训练模型(model.h5)。我想用基于 tensorflow Magnitude 的 Keras 权重修剪来修剪该模型。一件奇怪的事情是,我的预训练模型是使用原始 keras 模型构建的 > 我的意思是这不是来自 tensorflow.keras。在 tensorflow 基于 Magnitude 的权重修剪与 Keras 示例中,他们展示了如何使用 tensorflow.keras 模型。我想问一下,我可以使用他们的工具来修剪我原来的 keras 预训练模型吗?
在他们的权重修剪工具包中,有两种方法。一是在训练时逐层修剪模型,二是修剪整个模型。我尝试了第二种方法来修剪整个预训练模型。下面是我的代码。在他们的权重修剪工具包中,有两种方法。一是在训练时逐层修剪模型,二是修剪整个模型。我尝试了第二种方法来修剪整个预训练模型。下面是我的代码。对于我原来的预训练模型,我从 model.h5 加载权重,并且在我应用 prune_low_magnitude() 后可以调用 model.summary() 模型中的任何方法都不能调用,包括 model.summary() 方法。并显示类似 AttributeError: 'NoneType' object has no attribute 'summary' 的错误
model = get_training_model(weight_decay)
model.load_weights('model/keras/model.h5')
model.summary()
epochs = 1
end_step = np.ceil(1.0 * 100 / 2).astype(np.int32) * epochs
print(end_step)
new_pruning_params = {
'pruning_schedule': tfm.sparsity.keras.PolynomialDecay(initial_sparsity=0.1,
final_sparsity=0.90,
begin_step=40,
end_step=end_step,
frequency=30)
}
new_pruned_model = tfm.sparsity.keras.prune_low_magnitude(model, **new_pruning_params)
print(new_pruned_model.summary())
在他们的权重修剪工具包里面 输入链接描述,有两种方法。一是在训练时逐层修剪模型,二是修剪整个模型。我尝试了第二种方法来修剪整个预训练模型。下面是我的代码。对于我原来的预训练模型,我从 model.h5 加载权重,并且在我应用 prune_low_magnitude() 后可以调用 model.summary() 模型中的任何方法都不能调用,包括 model.summary() 方法。并显示错误
AttributeError:“NoneType”对象没有属性“摘要”