小编jmm*_*mcd的帖子

Emacs有BNF模式吗?

我必须编辑.bnf格式的许多语法文件.在Emacs中有这种模式吗?

我已经看过CEDET的语义包了,似乎它用于拥有bnf模式,但不再是.这个片段是googlable,但是semantic-bnf-mode似乎不存在:

(autoload 'semantic-bnf-mode "semantic-bnf" "Mode for Bovine Normal Form." t)
(add-to-list 'auto-mode-alist '("\\.bnf$" . semantic-bnf-mode))
Run Code Online (Sandbox Code Playgroud)

emacs bnf

8
推荐指数
3
解决办法
2365
查看次数

如何在Python多处理中动态创建每进程队列

我想动态创建多个Processes,其中每个实例都有一个队列,用于传入来自其他实例的消息,每个实例也可以创建新实例.因此,我们最终得到了一个互相发送的流程网络.允许每个实例发送给所有其他实例.

下面的代码可以实现我想要的:它使用a Manager.dict()来存储队列,确保传播更新,以及a Lock()保护对队列的写访问.但是,当添加新队列时,它会抛出"RuntimeError: Queue objects should only be shared between processes through inheritance".

问题是,在启动时,我们不知道最终需要多少队列,因此我们必须动态创建它们.但由于除了施工时我们不能共享队列,我不知道该怎么做.

我知道一种可能性是创建queues一个全局变量而不是传入的托管变量__init__:然后,根据我的理解,问题是queues变量的添加不会传播到其他进程.

编辑我正在研究进化算法.EA是一种机器学习技术.EA模拟"人口",其通过适者生存,交叉和突变而发展.在并行 EA中,如此处,我们还在群体之间进行迁移,对应于进程间通信.群岛也可以产生新岛屿,因此我们需要一种在动态创建的流程之间发送消息的方法.

import random, time
from multiprocessing import Process, Queue, Lock, Manager, current_process
try:
    from queue import Empty as EmptyQueueException
except ImportError:
    from Queue import Empty as EmptyQueueException

class MyProcess(Process):
    def __init__(self, queues, lock):
        super(MyProcess, self).__init__(target=lambda x: self.run(x),
                                     args=tuple())
        self.queues = queues
        self.lock = lock
        # acquire lock …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

8
推荐指数
1
解决办法
3624
查看次数

sklearn.manifold.MDS 没有转换方法

在我制作了一个 MDS 对象mds并与之匹配后mds.fit(X),我想我可以使用mds.transform(X_new). 我认为这是其他多种类中的 API。但只有fit_transform. 我猜从fit_transform更合适的描述来看,我不想改变已经计算过的投影!

编辑:等等,也许这没有意义。我又读了一些。如果我现在理解正确的话,MDS 算法是一种迭代算法,它“只是移动点”直到压力值变低——并且实际上不允许进行投影。

但是,我仍然对做什么感到有些困惑fit_transform。文档说“拟合来自 X 的数据,并返回嵌入的坐标”。这和只是试穿有mds.embedding_什么不同?

scikit-learn

6
推荐指数
1
解决办法
1655
查看次数

PyTorch 中的自定义卷积核和环形卷积

我想用 PyTorch 卷积做两件事,文档或代码中没有提到:

  1. 我想用这样的固定内核创建卷积:

    000010000
    000010000
    100010001
    000010000
    000010000
    
    Run Code Online (Sandbox Code Playgroud)

    我猜,水平方面就像膨胀,但垂直部分是不同的。我看到 dilation 可以作为代码中的参数使用,但它必须是标量或单元素元组(不是每个维度一个元素),所以我认为它不能在这里做我想做的事。

  2. 我希望我的卷积像环形一样“环绕”,而不是使用填充。

    编辑添加:我看到有一个未解决的问题,这也提供了一个次优的解决方法。所以,我想还没有“正确”的方法来做到这一点。

padding convolution pytorch convolutional-neural-network

4
推荐指数
1
解决办法
2925
查看次数