修剪不重要的权重
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
由 TensorFlow 模型优化维护
本文简要介绍了模型剪枝,可帮助您确定剪枝是否适合您的用例。
概览
在训练过程中,基于大小的权重剪枝会逐渐将模型权重减小为零,实现模型稀疏性。稀疏模型更易于压缩,我们可以在推断过程中跳过零以缩短延迟时间。
此技术通过模型压缩改进了模型。今后,对此技术的框架支持可以缩短延迟时间。我们发现模型压缩的性能提升了 6 倍,并且对准确率造成的影响极低。
此技术正在各种语音应用(例如语音识别和文字转语音)中接受评估,并已针对各种视觉和翻译模型进行了实验。
API 兼容性矩阵
用户可以使用以下 API 来应用剪枝:
- 模型构建:只能对序列模型和函数式模型使用
tf.keras
- TensorFlow 版本:TF 1.x(包括版本 1.14 及更高版本)和 TF 2.x。
- 不支持对 TF 2.X 软件包使用
tf.compat.v1
及对 TF 1.X 软件包使用 tf.compat.v2
。
- TensorFlow 执行模式:图执行 (graph) 和即刻执行 (eager)
- 分布式训练:只能对图执行使用
tf.distribute
我们预计会增加以下方面的支持:
结果
图像分类
模型 |
非稀疏最高准确率 |
稀疏准确率 |
稀疏性 |
InceptionV3 |
78.1% |
78.0% |
50% |
76.1% | 75% |
74.6% | 87.5% |
MobilenetV1 224 | 71.04% | 70.84% | 50% |
这些模型在 Imagenet 上进行了测试。
翻译
模型 |
非稀疏 BLEU |
稀疏 BLEU |
稀疏性 |
GNMT EN-DE |
26.77 |
26.86 |
80% |
26.52 | 85% |
26.19 | 90% |
GNMT DE-EN |
29.47 |
29.50 |
80% |
29.24 | 85% |
28.81 | 90% |
这些模型使用 WMT16 德语和英语数据集,将 news-test2013 作为开发集,将 news-test2015 作为测试集。
示例
除了利用 Keras 进行剪枝教程外,还请参阅以下示例:
- 通过剪枝在 MNIST 手写数字分类任务中训练 CNN 模型:代码
- 通过剪枝在 IMDB 情感分类任务中训练 LSTM:代码
有关背景信息,请参阅“To prune, or not to prune: exploring the efficacy of pruning for model compression”(是否剪枝:探索剪枝在模型压缩方面的效果)这篇论文。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2021-09-01。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2021-09-01\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2021-09-01。"],[],[]]