问题标签 [pruning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
157 浏览

conv-neural-network - 神经网络剪枝机制

我正在研究SqueezeNet 修剪。我对基于论文的剪枝代码有一些疑问: PRUNING CONVOLUTIONAL NEURAL NETWORKS FOR RESOURCE EFFICIENT INFERENCE

1)为什么' values '只使用in_height(2)和in_width(3)的激活?in_channels (1) 呢?

2) 为什么filter_ranks[activation_index]只依赖于 in_channels (1) ?

3)为什么激活乘以梯度?为什么要总结它们?

0 投票
0 回答
228 浏览

python - 在训练 sklearn 的 MLP 分类器期间将权重冻结在指定值

我正在使用 scikit-learn 的多层感知器分类器,我想评估一些神经网络的修剪技术,例如 Optimal Brain Damage。这种方法需要迭代地从网络中删除权重,即手动将它们设置为 0 并重新训练,并重复该过程直到满足某些标准。

所以我想知道是否有一种简单的方法可以将一个或多个权重设置为零,并在整个网络的训练过程中保持这样的状态。我想指出,虽然可以轻松访问 MLP 的权重(它是对象的属性),一旦它已经被训练,我不知道如何在训练之前预设它。

PD:如果您知道在 sklearn 中评估修剪方法的另一种更自动的方法,那也会有所帮助。

0 投票
1 回答
665 浏览

r - 手动修剪决策树

我使用该rpart()函数生成了一个简单的树,但是我希望能够Petal.Length < 4.9在它拆分之前停止第二个拆分Petal.Width,但是我不想更改树中的任何其他内容。我发现的唯一一件事是我可以使用子集函数来手动生长树,但是这个过程可能非常繁琐。关于可能使用的功能的任何建议?用于生成树的代码是:

决策树

0 投票
0 回答
57 浏览

neural-network - SqueezeNet 深度压缩

你们知道在哪里或如何获得0.47MB 版本的 SqueezeNet吗?

换句话说,如何使权重位宽为 6 而不是 8 ?

我在这个SqueezeNet 生成代码中找不到修改点。

0 投票
2 回答
65 浏览

matlab - 在matlab中查找向量中删除的元素

我有一个迭代和随机修剪一个巨大的整数向量的过程,我想找出每次迭代之间删除了哪些元素。这个向量有很多重复,使用 ismember() 和 setdiff() 对我没有多大帮助。

作为说明,如果 X = [1,10,8,5,10,3,5,2]:

我的目标是找到在每个步骤中删除的元素(即 5 然后,10 和 5 等等)。我可能会hist(X, unique(X))在步骤之间找到一个过于复杂的解决方案,但我认为 matlab 中存在一个更优雅(更便宜!)的解决方案。

0 投票
2 回答
574 浏览

tensorflow - 当我从修剪中获得稀疏矩阵时,如何在 TensorFlow 中加快推理速度?

我从Tensorflow-pruning得到了一个稀疏权重矩阵来减少SqueezeNet. 之后strip_pruning_vars,我检查了权重矩阵中大部分元素成功修剪为 0。但是,模型的性能并没有达到我的预期。似乎需要支持稀疏矩阵运算的附加软件库或硬件。有人告诉我使用Intel-MKL库会有所帮助,但我不知道如何将它与 Tensorflow 集成。现在,我.pb修剪了 SqueezeNet 的文件。任何类型的帮助都将受到高度赞赏。

0 投票
0 回答
149 浏览

deep-learning - 如何在 PyTorch 中物理移除神经元?

在“Learning both Weights and Connections for Efficient Neural Networks”一文中,它根据一个标准缩小了神经网络的大小。然而,我发现这篇论文的所有实现并没有在物理上缩小模型的大小。他们只是将一些神经元的权重归零以获得相同的结果。但在物理上,模型的大小和推理时间不会改变。我想知道我怎么能在身体上做到这一点?

0 投票
1 回答
71 浏览

computational-geometry - 在运行凸包算法之前进行修剪

我必须从大量点形成一个凸包,我遇到了这篇文章。修剪的整个过程都被描述和很好地解释了,除了一个部分。

我不知道这部分是什么意思以及如何将其转换为代码:

由于空间是二维的,每个点都有两个坐标,x > 和 y。每次我们读取一个新点时,我们都会计算以下 4 个 > 点:

A = (Ax, Ay) 最大化 xy B = (Bx, Xy) 最大化 x+y C = (Cx, Cy) 最小化 xy D = (Dx, Dy) 最小化 x+y

谁能帮我计算点A、B、C、D?

0 投票
1 回答
256 浏览

r - Minimax 理论,包括 R 代码的 alpha beta 剪枝

在 R 中开发 alpha beta 修剪 minimax 算法时需要帮助。目前我已经实现了 minimax 算法,但它仅适用于 3x3 板。4x4 板不运行 --> 长时间运行

我已经从 3x3 板上复制了代码,但我意识到我无法提供深度。所以我假设它适用于 4x4 板的所有示例。我需要更改什么才能在 minimax 代码部分中实现 alpha beta 修剪。由于我对这个领域相当陌生,我正在尝试修改现有代码以了解每个部分在做什么。

0 投票
1 回答
986 浏览

tensorflow - 我可以使用 tensorflow keras 模型优化工具包对 keras 预训练模型进行修剪吗?

我有 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.h5 加载权重,并且在我应用 prune_low_magnitude() 后可以调用 model.summary() 模型中的任何方法都不能调用,包括 model.summary() 方法。并显示错误

AttributeError:“NoneType”对象没有属性“摘要”