haskell - 从列表到数据的映射函数

标签 haskell

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

特别是,this linethis line使用特定的功能(激活),但我试图扩展它以支持类似的东西:

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

在哪里 N是节点 ID/索引。

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

我需要帮助(因为我迷失在包源代码中)找到一种方法来申请 Nth activations列表中的函数。

编辑:我试过 StateT使用 tick 的方法(来自文档)并使用 zip函数,每一步都执行多次,所以最终结果是错误的

最佳答案

对于 map ,您可能想要类似的东西

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

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

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

关于haskell - 从列表到数据的映射函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30541807/

相关文章:

haskell - 并发访问持久化数据库的规则是什么

haskell - 如何编写一个不占用空间的解析器?

haskell - .与haskell中的$相比

haskell amqp x509 客户端身份验证

haskell - runhaskell安装程序安装安装程序错误

haskell - 在 Haskell 中更改属性

haskell - 对于某些 TVar 具有部分原子性的 STM

list - Do-notation 和列表单子(monad)

Haskell 函数由两个二元函数组成?

haskell - 默认情况下具有不可变变量的语言,例如 Haskell