小编use*_*306的帖子

Prolog DCG:匹配链上的不同符号

我试图匹配一些句子(例如001 [0,0,1],(1 +(1/0))['(',1,+,'(',1,/,0,')' ,')'], 等等.

我已经让自己跟随小型DCG了.

g3 --> s3.
s3 --> e3.

e3 --> eAdd.
e3 --> eMin.
e3 --> eMul.
e3 --> eDiv.
e3 --> n3.

eAdd --> ['('],e3,['+'],e3,[')'].
eMin --> ['('],e3,['-'],e3,[')'].
eMul --> ['('],e3,['*'],e3,[')'].
eDiv --> ['('],e3,['/'],e3,[')'].


n3 --> d3.
n3 --> n3,d3.
d3 --> [0].
d3 --> [1].
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,它与使用 - ,*或/的句子不匹配,但它仅适用于使用+的递归句子.

例如:

phrase(g3,['(',1,'+','(',1,'+',1,')',')']).
Run Code Online (Sandbox Code Playgroud)

会工作,但是

phrase(g3,['(',1,'+','(',1,'/',1,')',')']).
Run Code Online (Sandbox Code Playgroud)

不行.

任何帮助将不胜感激,谢谢!

recursion prolog left-recursion dcg failure-slice

3
推荐指数
1
解决办法
108
查看次数

如何从 ONNX / PyTorch 中提取图层形状和类型?

我想将 PyTorch 模型“翻译”到另一个框架(非 tf/keras)。

我正在尝试采用 pytorch 模型,并自动转换到其他框架,其中包含类似类型的层(即 conv2d、dense,...)。

有没有办法直接从 pytorch 或通过 onnx 检索模型层、它们的类型、形状和连接?(到目前为止,权重并不重要)

python machine-learning deep-learning pytorch onnx

2
推荐指数
1
解决办法
8039
查看次数

为什么1:[[]]等于(1:[]):[]?

正如标题所说,我并没有完全理解哈斯克尔如何解释

1:[[]]
Run Code Online (Sandbox Code Playgroud)

它为什么这么做(1:[]):[]

E:我从以下方面得到了这个想法:

part'::[a] -> [[a]]
part' [] = [[]]
part' (x:xs) = p ++ [x:ys | ys <- p]
    where p = part' xs
Run Code Online (Sandbox Code Playgroud)

具体来自 p ++ [x:ys | ys <- p]

例如part'[1]:我的思路是否正确?:

part'[1] = (part'[]) ++ [1:ys | ys <- part'[]]
--> = [[]] ++ [1:[[]]]
Run Code Online (Sandbox Code Playgroud)

希望这说清楚.

haskell list-comprehension

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