修剪硬盘

问题描述 投票:13回答:4

我正在尝试使用Keras设计一个优先考虑预测性能的神经网络,并且通过进一步减少每层的层数和节点数量,我无法获得足够高的精度。我注意到我的很大一部分重量实际上是零(> 95%)。有没有办法修剪密集层以期减少预测时间?

python-3.x neural-network keras pruning
4个回答
6
投票

不是专门的方式:(

目前没有简单(专用)的方式与Keras这样做。

https://groups.google.com/forum/#!topic/keras-users/oEecCWayJrM正在进行讨论。

您可能也对本文感兴趣:https://arxiv.org/pdf/1608.04493v1.pdf


5
投票

看看Keras Surgeon:https://github.com/BenWhetton/keras-surgeon

我自己没有尝试过,但文档声称它具有删除或插入节点的功能。

此外,在查看一些关于修剪的论文之后,似乎许多研究人员创建了一个具有较少通道(或更少层)的新模型,然后将权重从原始模型复制到新模型。


0
投票

如果将单个权重设置为零,是否会阻止在反向传播期间更新?从一个时代到另一个时代,重量不应该保持为零吗?这就是为什么你在训练前将初始权重设置为非零值的原因。如果要“删除”整个节点,只需将该节点输出上的所有权重设置为零,这样可以防止这些节点在整个训练过程中对输出产生任何影响。


0
投票

请参阅Keras专用工具。 https://www.tensorflow.org/model_optimization/guide/pruning

如概述所示,对延迟改进的支持是一项正在进行的工作

© www.soinside.com 2019 - 2024. All rights reserved.