问题标签 [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.
npm - 配置 npm 的 package-lock.json 以防止修剪特定模块
因此,冒着引发“你为什么要这样做?!?!”的下意识反应的风险......有没有人知道一个配置设置可以放入其中一个package.json
或生成package-lock.json
这样 npm 将忽略给定的更新/修剪时的模块?
基本上我想在 npm 忽略的 node_modules 目录树中有一些代码。在自动修剪之前,这曾经是微不足道的。当然,我可以使用它--no-package-lock
来防止自动修剪,但我真正想做的是允许正常的修剪行为,除了特定的模块。
python - 在 sklearn DecisionTreeClassifier 中修剪不必要的叶子
我使用 sklearn.tree.DecisionTreeClassifier 来构建决策树。使用最佳参数设置,我得到一棵具有不必要叶子的树(见下图示例- 我不需要概率,因此标记为红色的叶子节点是不必要的拆分)
是否有任何第三方库可以修剪这些不必要的节点?还是代码片段?我可以写一个,但我真的无法想象我是第一个遇到这个问题的人......
要复制的代码:
PS:我已经尝试了多个关键字搜索,但没有发现任何东西感到有点惊讶 - sklearn 中真的没有一般的后修剪吗?
PPS:针对可能的重复:虽然建议的问题可能对我自己编码修剪算法有帮助,但它回答了一个不同的问题——我想去掉不改变最终决定的叶子,而另一个问题想要一个分裂节点的最小阈值。
PPPS:显示的树是显示我的问题的示例。我知道创建树的参数设置不是最理想的。我不是在问优化这棵特定的树,我需要进行后修剪以去除叶子,如果需要类概率可能会有所帮助,但如果只对最可能的类感兴趣则无济于事。
git - Git - 作者的 rebase 提交
在包含名为 的示例文件的 git 项目中file.txt
,我想要一个脚本:
- 解析当前以空格分隔的单词(在示例中,对于第一次迭代,这将是
Enlargement
)。也许通过使用正则表达式\b[A-za-z+]\b
来进行单词检测。 - 检查单词的长度是否至少为 5 个字符。如果不是,请继续移动到下一个单词,直到满足此条件。如果满意,请移至下面的#3。
- 检查项目的整个历史,找出是谁最初提交了引入这个词的提交。
- 如果该特定提交的作者匹配
johndoe
,则从文件中删除正在考虑的单词。 - 重复 #1 - #3 直到文件中的所有单词都被解析并且特定作者的原始单词被剪掉。
常用词的处理:
忽略常见的关键字很重要,例如a, an, the, of, for, if, then, but, else, not, any, or, nor
. 因此,我建议保留5 characters
字符串中的最小长度,以使单词有资格被删除
基本上,这个想法是消除或恢复特定作者所做的类似英语的贡献。如何才能做到这一点?
latexdiff 后处理:
此问题用于在删除作者的贡献后生成差异报告。在修剪文本之后(即在我得到这个问题的答案之后),我打算使用一个标准但令人惊叹的 perl 脚本latexdiff
,它可以检测这些单词删除(或者实际上两个文件之间的任何其他差异latex
)并输出复合 PDF ,用红色的罢工线突出显示删除的单词。我需要做的就是识别并删除其他作者最初介绍的单词(即我的核心问题)。因此,复合 pdf 中的所有句子都应保持连贯,不会失去意义,但会继续将已删除的单词保留在同一位置,但另外只需在它们上面加上红色删除线标记。
背景和背景:
这是在学术背景下。git 项目是手稿的 LaTeX 存储库。我与一篇论文的共同作者发生了作者权纠纷,因此该论文没有提交给任何期刊。我们都是博士生。为了声明我们在各自论文中使用的词语的版权,我们的博士导师要求提交我们各自对我们每个人在手稿中介绍的词语的声明,以便在我们的论文中重复使用,并避免剽窃指控。我们都致力于同一个 repo ,现在我正在考虑利用 , , 或其他任何东西的力量来git
帮助我声明我以诚信贡献的正确词语。您的帮助将不胜感激。shell
git-grep
sed
awk
perl
tensorflow - 如何保存 Tf.contrib 模型修剪?
我已经建立了一个模型,并且我能够使用 tf.contrib 的模型修剪模块成功地修剪它,默认参数和稀疏度为 90%,但问题是当我运行模型时,它仍然需要与之前相同的执行时间原始模型,我的猜测是,tensorflow 不是只运行修剪后的版本,而是运行带有掩码权重的整个图,这就是为什么即使在修剪后也没有改进的原因。
那么如何导出带有子图和各自权重的修剪模型并使用它呢?
keras - Keras - 过滤器修剪
目前,我正在尝试修剪一个网络(简单的卷积自动编码器)——不用说没有成功。
首先,我指的来源是博客文章:
http://machinethink.net/blog/compressing-deep-neural-nets/
第一步,我只想将卷积滤波器设置为零,这样它就不再起作用了。到目前为止我尝试过的是:
之后,我用这些权重初始化一个新模型:
并致电:
但是,在检索权重后:
不再是 0。
这意味着我的过滤器已更新,尽管根据文章,它不应该发生。
谁能告诉我我做错了什么(或如何正确做)?
最好的,
阿雷波
tensorflow - Tensorflow 从预训练模型中删除层
有没有办法在 Tensorflow 中加载预训练模型并删除网络中的顶层?我正在查看 Tensorflow 版本 r1.10
我能找到的唯一文档是tf.keras.Sequential.pop
https://www.tensorflow.org/versions/r1.10/api_docs/python/tf/keras/Sequential#pop
我想通过删除一堆顶部卷积层并添加一个自定义的完全卷积层来手动修剪一个预训练的网络。
编辑:
该模型是从Tensorflow Model Zoo下载的 ssd_mobilenet_v1_coco 。我可以访问 freeze_inference_graph.pb 模型文件和检查点文件。
我无权访问用于构建模型的 python 代码。
谢谢。
decision-tree - XGBoost 修剪步骤在做什么?
当我使用 XGBoost 拟合模型时,它通常会显示一个消息列表,例如“updater_prune.cc:74:树修剪结束,1 个根,6 个额外节点,0 个修剪节点,max_depth=5”。我想知道 XGBoost 是如何进行树修剪的?我在他们的论文中找不到关于他们修剪过程的描述。
注意:我确实了解决策树修剪过程,例如预修剪和后修剪。这里我很好奇XGBoost的实际剪枝过程。通常剪枝需要验证数据,但即使我没有给它任何验证数据,XGBoost 也会执行剪枝。
backup - borg 备份 - 如何保持每周备份
我有一个每日 cronjob,它使用 borg 备份进行备份,如下所示:
然后,在同一个日常 cronjob 中,我做:
我的问题:如果我会这样修剪:
我还会得到每周和每月的备份吗?还是我必须保留 7 天才能进行每周备份?
还是我必须首先创建所有每日备份,例如 3 个月,然后只运行一次 Borg prune 命令?
谢谢并恭祝安康
numpy - TypeError:无法将 CUDA 张量转换为 numpy。首先使用 Tensor.cpu() 将张量复制到主机内存
我正在使用修改后的 predict.py来测试修剪后的 SqueezeNet 模型
我知道 numpy 还不支持 GPU。
在不调用张量复制数据操作的情况下,我应该如何修改代码以摆脱此错误tensor.cpu()
?