微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

修剪模型和原始模型的相同测试精度

如何解决修剪模型和原始模型的相同测试精度

我正在尝试在 resnet50 上执行模型修剪。但是,我对它们的测试准确度完全相同。我做错了什么?

import tensorflow_model_optimization as tfmot
import numpy as np

prune_low_magnitude = tfmot.sparsity.keras.prune_low_magnitude

# Compute end step to finish pruning after 2 epochs.
batch_size = 128
epochs = 50
validation_split = 0.1 # 10% of training set will be used for validation set. 

num_images = x_train.shape[0] * (1 - validation_split)
end_step = np.ceil(num_images / batch_size).astype(np.int32) * epochs

# Define model for pruning.
pruning_params = {
      'pruning_schedule': tfmot.sparsity.keras.polynomialDecay(initial_sparsity=0.50,final_sparsity=0.80,begin_step=0,end_step=end_step)
}

model_for_pruning = prune_low_magnitude(model,**pruning_params)

# `prune_low_magnitude` requires a recompile.
model_for_pruning.compile(optimizer='adam',loss=tf.keras.losses.CategoricalCrossentropy(from_logits=True),metrics=['accuracy'])
import tempfile
import os
logdir = tempfile.mkdtemp()

callbacks = [
  tfmot.sparsity.keras.UpdatePruningStep(),tfmot.sparsity.keras.PruningSummaries(log_dir=logdir),]
model_for_pruning.fit(x_train,y_train,batch_size=batch_size,epochs=5,validation_split=validation_split,verbose = 1,callbacks=callbacks)
_,baseline_model_accuracy = model.evaluate(x_test,y_test,verbose=0)
_,model_for_pruning_accuracy = model_for_pruning.evaluate(x_test,verbose=0)

print('Baseline test accuracy:',baseline_model_accuracy) 
print('Pruned test accuracy:',model_for_pruning_accuracy)

输出: 基线测试精度:0.9070000052452087 剪枝测试精度:0.9070000052452087

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?