映射函数从列表到数据

时间:2015-05-30 03:06:42

标签: haskell

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

特别是,this linethis line使用特定功能(激活),但我试图扩展它以支持以下内容:

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

其中N是节点标识/索引。

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

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

编辑:我尝试StateT使用tick(来自文档)并使用zip函数,每个步骤都会执行多次执行,因此最终结果会出错

1 个答案:

答案 0 :(得分:3)

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

的内容
as = [(+1),(*2),(+(-3))]
xs = [4,5,6]
main = print $ zipWith ($) as xs

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

然而,我怀疑你真的需要/想要改变折叠。如果我没有弄错,折叠应该只传递激活功能列表。所以实际上没什么可做的。