问题标签 [hmatrix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
362 浏览

haskell - 如何对hmatrix进行自动微分?

太棒了……事实证明,从假矩阵hmatrix数据类型的转变是不平凡的:)

序言供参考:

以及对gradientDescent函数的调用:

编辑:这不是原始问题中的代码,而是尽可能地归结起来。GHC 需要对子功能进行一些限制go,但链接问题中提出的答案不适用于此处。

edit2,从下面引用我自己的话:

我开始相信这是不可能的。Matrix要求它的元素在Element类中。唯一的元素DoubleFloat以及它们的Complex形式。所有这些都是不被接受的gradientDescent

所以基本上这与上面链接的问题相同,但是对于hmatrix数据类型而不是我的手动处理的问题。

编辑3

Edward Kmett 和 Dominic Steinitz 之间的相关电子邮件对话:https ://mail.haskell.org/pipermail/haskell-cafe/2013-April/107561.html

0 投票
1 回答
56 浏览

haskell - 使用 hmatrix-gsl-stats 对随机分布进行采样时如何推进 RNG 状态?

当我从随机分布中采样时,如何在 hmatrix-gsl-stats 中推进 RNG:例如:

我在https://hackage.haskell.org/package/hmatrix-gsl-stats-0.2.1/docs/Numeric-GSL-Distribution-Continuous.html中看不到维护 RNG 状态的明显界面

0 投票
1 回答
572 浏览

haskell - 如何从自动微分中获得更多性能?

我很难优化一个依赖adsconjugateGradientDescent函数完成大部分工作的程序。

基本上我的代码是用 Matlab 和 C 编写的旧论文代码的翻译。我没有测量它,但该代码每秒运行几次迭代。我的每次迭代大约需要几分钟...

该代码在此存储库中可用:

可以通过以下命令运行有问题的代码:

使用 GHC 分析工具,我已经确认下降实际上是花费大部分时间的部分:

一次迭代的火焰图

(此处的交互式版本:https ://dl.dropboxusercontent.com/u/2359191/learngabors.svg )

-s告诉我生产力很低:

从我收集的信息来看,有两件事可能会导致更高的性能:

  • 拆箱:目前我使用自定义矩阵实现(在 中src/Data/SimpleMat.hs)。这是我可以ad使用矩阵的唯一方法(请参阅:如何在 hmatrix 上进行自动微分?)。newtype Mat w h a = Mat (Unboxed.Vector a)我的猜测是,由于拆箱和融合,使用类似矩阵类型会获得更好的性能。我发现了一些包含未装箱向量实例的代码ad但到目前为止,我还无法将这些与conjugateGradientFunction.

  • 矩阵导数:在一封电子邮件中,我现在找不到 Edward 提到使用Forward矩阵类型的实例而不是用Forward实例填充矩阵会更好。我对如何实现这一点有一个模糊的想法,但还没有弄清楚我将如何根据ads 类型类来实现它。

这可能是一个在 SO 上无法回答的问题,所以如果您愿意在这里帮助我,请随时在 Github 上与我联系。

0 投票
1 回答
1147 浏览

haskell - 如何在haskell中添加两个矩阵

我正在尝试使用 Haskell 的线性代数库来计算一些特征值,但首先我需要先尝试添加矩阵。

但是,如果我尝试代表另一种方式,我会收到错误消息

我什至不确定,matrix 3 [1,2,3,4,5,6,7,8,9 ]因为我想指定我想要一个 3 × 3 矩阵。其他三个去哪儿了?

0 投票
1 回答
1701 浏览

windows - 如何在 Windows 下使用 BLAS 和 LAPACK 构建 hmatrix?

Windows 10 x64 阴谋集团 1.22

我正在遵循 Windows 部分中的步骤https://github.com/AlbertoRuiz/hmatrix/blob/master/INSTALL.md

我下载了 hmatrix 源代码和 gsl-lapack-windows.zip。当我尝试安装 hmatrix 时:

D:\Projects\workspace\hmatrix-0.16.1.5>cabal install --extra-include-dirs=D:\Projects\workspace\gsl-lapack-windows\ --extra-lib-dirs=d:\Projects\workspace \gsl-lapack-windows\

我收到了我仍然无法解决的消息:

配置 hmatrix-0.16.1.5... 无法安装 hmatrix-0.16.1.5 构建日志( D:\Projects\workspace\hmatrix-0.16.1.5.cabal-sandbox\logs\hmatrix-0.16.1.5.log ):配置 hmatrix -0.16.1.5... setup-Simple-Cabal-1.22.4.0-x86_64-windows-ghc-7.10.2.exe: 缺少对外部库的依赖: * 缺少 C 库: blas, lapack, blas, lapack 这个问题可以通常通过安装提供这些库的系统包来解决(您可能需要“-dev”版本)。如果库已经安装但在非标准位置,那么您可以使用标志 --extra-include-dirs= 和 --extra-lib-dirs= 指定它们的位置。cabal:错误:某些软件包无法安装:hmatrix-0.16.1.5 在配置步骤中失败。例外是:ExitFailure 1

“-dev 版本”我认为仅适用于基于 *nix 的操作系统。在我给 cabal 的文件夹中,有 blas.dll 和 lapack.dll。

可能是什么问题呢?

0 投票
1 回答
95 浏览

haskell - hMatrix 在文件中中断,可能是什么原因?

我一直在 ghci 环境中使用 hMatrix 包,一切正常(例如,我可以导入 Numeric.LinearAlgebra.HMatrix)。但是,当我尝试在脚本中导入和使用相同的内容时,一切都会中断(为了便于阅读,我略微截断了错误消息(_base_GHCiIO-errors 的更长列表))。例如,文件中的这两行会创建以下错误。有谁知道可能是什么原因?我在 Mac OS X Yosemite 上。

0 投票
2 回答
220 浏览

haskell - 无法成功安装 plot Haskell

我想在我的 Haskell 程序中做一些绘图,但是当我尝试安装 plot 时,我收到以下错误。

此问题之后,我将 hmatrix 更新为版本0.17.0.1,但仍然出现相同的错误。有任何想法吗?

0 投票
1 回答
43 浏览

file - 如何将多个矩阵从单个文件解析为 hmatrix?

我有一个 txt 文件,其中包含几个不同维度的整数矩阵,我想将其解析为 hmatrix 包表示,但我找不到任何合适的函数。文本文件包含以下形式:

例如

我发现的最接近的地方是readMatrix

https://hackage.haskell.org/package/hmatrix-0.17.0.1/docs/Numeric-LinearAlgebra-Devel.html#v:readMatrix

但由于没有文档,而且我对 Haskell 还很陌生,我不知道如何使用它。

0 投票
1 回答
67 浏览

haskell - Haskell hmatrix:向量/标量交互的类型错误?

我遇到了这些奇怪的标量和矩阵在 hmatrix 中表现奇怪的情况。如果我不键入注释,则该操作会自动运行 ala matlab/python。但是,如果我确实使用“R”或类型或“Double”对标量进行类型注释,则会出现类型错误。

为什么是这样?

0 投票
1 回答
111 浏览

haskell - 如何从列表中删除逗号和括号( hmatrix )

用于在 gnuplot 中绘制图形

我正在尝试将此矩阵打印到文件中,但是要在 gnuplot 中执行它,我需要创建一个没有逗号和括号的文件,我该怎么做?