我必须编辑.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) 我想动态创建多个Process
es,其中每个实例都有一个队列,用于传入来自其他实例的消息,每个实例也可以创建新实例.因此,我们最终得到了一个互相发送的流程网络.允许每个实例发送给所有其他实例.
下面的代码可以实现我想要的:它使用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) 在我制作了一个 MDS 对象mds
并与之匹配后mds.fit(X)
,我想我可以使用mds.transform(X_new)
. 我认为这是其他多种类中的 API。但只有fit_transform
. 我猜从fit_transform
更合适的描述来看,我不想改变已经计算过的投影!
编辑:等等,也许这没有意义。我又读了一些。如果我现在理解正确的话,MDS 算法是一种迭代算法,它“只是移动点”直到压力值变低——并且实际上不允许进行投影。
但是,我仍然对做什么感到有些困惑fit_transform
。文档说“拟合来自 X 的数据,并返回嵌入的坐标”。这和只是试穿有mds.embedding_
什么不同?
我想用 PyTorch 卷积做两件事,文档或代码中没有提到:
我想用这样的固定内核创建卷积:
000010000
000010000
100010001
000010000
000010000
Run Code Online (Sandbox Code Playgroud)
我猜,水平方面就像膨胀,但垂直部分是不同的。我看到 dilation 可以作为代码中的参数使用,但它必须是标量或单元素元组(不是每个维度一个元素),所以我认为它不能在这里做我想做的事。
我希望我的卷积像环形一样“环绕”,而不是使用填充。
bnf ×1
convolution ×1
convolutional-neural-network ×1
emacs ×1
padding ×1
python ×1
pytorch ×1
scikit-learn ×1