我是初学者
我得到了keras resnet50预训练权重(.h5文件),使用官方tensorflow api为其生成了模型架构。现在,当我尝试修剪权重时,权重文件的大小保持不变,权重文件中的参数总数随着不可训练参数增加到几乎可训练参数而增加一倍
成功加载keras砝码后,我尝试修剪如下:-
epochs = 12
batch_size = 8
num_train_samples = 5000
end_step = np.ceil(1.0 * num_train_samples/batch_size).astype(np.int32) * epochs
print('End step: ' + str(end_step))
prune_low_magnitude = tfmot.sparsity.keras.prune_low_magnitude
pruning_params = {
'pruning_schedule': tfmot.sparsity.keras.PolynomialDecay(initial_sparsity=0.10,
final_sparsity=0.90,
begin_step=0,
end_step=end_step,
frequency = 10)
}
model_for_pruning = tfmot.sparsity.keras.prune_low_magnitude(model, **pruning_params)
# `prune_low_magnitude` requires a recompile.
model_for_pruning.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model_for_pruning.summary()
_, pruned_keras_file = tempfile.mkstemp('.h5')
tf.keras.models.save_model(model_for_pruning, pruned_keras_file, include_optimizer=False)
print('Saved pruned Keras model to:', pruned_keras_file)
def get_gzipped_model_size(file):
# Returns size of gzipped model, in bytes.
import os
import zipfile
_, zipped_file = tempfile.mkstemp('.zip')
with zipfile.ZipFile(zipped_file, 'w', compression=zipfile.ZIP_DEFLATED) as f:
f.write(file)
return os.path.getsize(zipped_file)
print("Size of gzipped baseline Keras model: %.2f bytes" % (get_gzipped_model_size(keras_file)))
print("Size of gzipped pruned Keras model: %.2f bytes" % (get_gzipped_model_size(pruned_keras_file)))
现在keras_文件的大小比删减的keras_文件小几千字节。 怎么办
目前没有回答
相关问题 更多 >
编程相关推荐