mah*_*thy 1 haskell vector linear-algebra vectorization hmatrix
我需要以有效的方式在Haskell中对向量的元素应用函数,这意味着我不是在寻找这样的东西:
sigmoid :: [Float] -> [Float]
sigmoid [] = []
sigmoid (z:zs) = ( 1/(1+exp (-z)) ):(sigmoid zs)
Run Code Online (Sandbox Code Playgroud)
更具体地说,是否exp, log, ... etc使用Haskell在hmatrix中进行元素方向向量操作,类似于使用Python的numpy中的对应方式?如果我不使用矢量处理功能,我的代码运行速度非常慢.
如果您正在使用hmatrix,您可能正在寻找cmap:
Run Code Online (Sandbox Code Playgroud)cmap :: (Element b, Container c e) => (e -> b) -> c e -> c b喜欢
fmap(由于Element类约束,无法实现实例Functor)
sigmoid :: Vector Double -> Vector Double
sigmoid = cmap (\z -> 1/(1+exp (-z)))
Run Code Online (Sandbox Code Playgroud)