映射函数从列表到数据

Bor*_*lov 12 haskell

我正在考虑更改hnn包以支持网络中每个节点的不同激活功能.

特别是,这一行这一行使用特定的功能(激活),但我试图扩展它以支持以下内容:

evalNet n@(Network{..}) inputs activations = do
    s <- foldM (\x -> computeStepM n x (activations!!N)) state inputsV
Run Code Online (Sandbox Code Playgroud)

其中N是节点ID /索引.

目前我处于一个阶段,我的激活功能列表与网络中的节点数量相同.

我需要帮助(因为我迷失在包源代码中)以找到Nth activations从列表中应用函数的方法.

编辑:我尝试StateT使用tick(从文档)和使用zip函数的方法,每个步骤都给出多次执行,所以最终的结果变得错误

小智 3

对于地图,您可能需要类似的东西

as = [(+1),(*2),(+(-3))]
xs = [4,5,6]
main = print $ zipWith ($) as xs
Run Code Online (Sandbox Code Playgroud)

折叠更复杂,但可以使用相同的想法来完成:使用相应的激活函数压缩输入并更改函数折叠以使用传入元组的值。

但是,我怀疑您是否真的需要/想要更改折叠方式。如果我没有记错的话,折叠应该只传递激活函数列表。所以其实没什么可做的。