【问题标题】:How to use lbfgs from math/lbfgs?如何使用来自数学/lbfgs 的 lbfgs?
【发布时间】:2020-07-22 02:39:58
【问题描述】:

我正在尝试使用函数lbfgs_jlbfgs_,但找不到文档。不带参数调用此函数的天真方法给出了

'"/usr/share/j/9.01/addons/math/lbfgs/lib/liblbfgs.so" lbfgs_  n *x *x *d *d *d *x *d *x *d *d *d *x'&cd

n*x*d的迹象吗?

github 上有一个合理的文档。参数的数量似乎匹配,但顺序似乎不匹配。指定参数的特定顺序同样有帮助。

【问题讨论】:

  • 我不是 J 程序员,但我确实找到了这个库 - chokkan.org/software/liblbfgs 我想知道它的文档是否有帮助。
  • 您还可以查看/usr/share/j/9.01/addons/math/lbfgs/lib//usr/share/j/9.01/addons/math/lbfgs/ 中的其他文件,看看那里是否存储了任何文档

标签: j


【解决方案1】:

math/lbfgs 插件刚刚更新。再看一遍,您应该会看到更多 cmets 和一个包含示例的测试文件夹。

【讨论】:

    【解决方案2】:

    您无需致电lbfgs_jlbfgs_;这个库还填充了z 命名空间,所以lbfgs 足以使用它。您从lbfgs_jlbfgs_ 看到的是它的定义,它是一个描述 FFI 调用的字符串,cd 根据该字符串以及您提供的参数调用 FFI 调用。

    这样的字符串在https://code.jsoftware.com/wiki/Guides/DLLs/Calling_DLLs进行了描述

    第一个n 是返回值,然后其余的都是整数(x)或浮点数(d)的数组(*)参数。

    我根本不熟悉这个库应该做的事情,但这是一个成功使用该函数的函数,可能没有意义的参数:

       lbfgs 1 1 ; 2 2 ; 3.0 3.0 ; 4.0 4.0 ; 5.0 5.0 ; 6 6 ; 7.0 7.0 ; 8 8 ; 9.0 9.0 ; 10.0 10.0 ; 11.0 1.0 ; 13 13
    *************************************************
      N=    1   NUMBER OF CORRECTIONS= 2
           INITIAL VALUES
     F=  4.000E+00   GNORM=  5.000E+00
    *************************************************
    
       I   NFN    FUNC        GNORM       STEPLENGTH
    
    ┌─┬───┬───┬────┬───┬───┬───┬───┬───┬───┬─────┬───┬────┐
    │0│1 1│2 2│_4 3│4 4│5 5│6 6│3 7│8 8│9 9│10 10│5 1│1 13│
    └─┴───┴───┴────┴───┴───┴───┴───┴───┴───┴─────┴───┴────┘
    

    【讨论】:

      猜你喜欢
      • 2016-01-23
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多