【问题标题】:output "get no rate" from grid.py of libsvm从 libsvm 的 grid.py 输出“get no rate”
【发布时间】:2013-05-14 15:12:51
【问题描述】:

我已经下载了 libsvm-3.17 包。提取文件。我去“工具”文件夹尝试使用 grid.py 来寻找合适的 c 和 g 以及包中提供的数据集,即 heart_scale。 但是,以下是我得到的

Traceback(最近一次调用最后一次): 文件“C:...\Documents\libsvm-3.17\tools\grid.py”,第 266 行,运行中 如果 rate 为 None: raise RuntimeError('get no rate') RuntimeError: 没有得到任何速率 工人本地退出。

谁能帮我弄清楚如何解决这个问题。 非常感谢。

【问题讨论】:

    标签: libsvm


    【解决方案1】:

    您可能需要提前缩放数据。我遇到了同样的问题,并且在我缩放数据后解决了。希望对您有所帮助。

    【讨论】:

    • 这确实也是导致我的问题的原因之一。
    【解决方案2】:

    首先,如果您是 libsvm 的新手,我建议您尝试使用 easy.py 而不是 grid.py。其次,在执行任何操作之前,您必须编译 libsvm,按照 README 文件中的说明进行编译(您必须确保 nmake.exe、cl.exe、link.exe 在系统路径中),它是这样说的:

    Windows 二进制文件位于“windows”目录中。通过构建它们 Visual C++,使用以下步骤:

    1. 打开一个 DOS 命令框(或 Visual Studio 命令提示符)并切换到 libsvm 目录。如果VC++的环境变量没有 已设置,输入

      “C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat”

      您可能需要根据哪个版本修改上述命令 VC++ 或安装位置。

    2. 类型

      nmake -f Makefile.win 全部清除

    3. (可选)要构建共享库 libsvm.dll,请键入

      nmake -f Makefile.win 库

      另一种方法是从 Visual C++ 环境中构建它们。查看详细信息 在 libsvm 常见问题解答中。

    一旦你安装了它,你就可以开始使用 easy.py 和 grid.py。

    【讨论】:

    • Tqvm 为您解答。是的,我尝试过 easy.py 并且它有效。你的意思是为了避免我上面遇到的问题,即使libsvm-3.17有grid.py所在的文件夹'tools',我仍然需要编译libsvm?
    • 如果你看看 easy.py 做了什么,你会发现它同时执行 grid.py 和 libsvm 中的所有二进制文件(svm-train、svm-predict 和 svm-scale),这就是你需要先编译 libsvm 的原因。
    • 非常感谢您的回复。我会试试这个,看看它是否有效。
    • 我已经编译了 libsvm。当我在 heart_scale(与 libsvm-3.17 一起提供的数据集)上运行 grid.py 时,它仍然产生与我上面的问题中提到的相同的错误输出,即
    【解决方案3】:

    这是我在 64 位和 32 位机器上尝试过的,grid.py 工作正常。 我已经添加了默认安装目录,如果您的安装目录不同,请相应修改。

    打开命令提示符并输入

    C:\Program Files (x86)\Microsoft Visual Studio xx\VC\bin\amd64\vcvars64.bat 用于 64 位系统

    OR C:\Program Files (x86)\Microsoft Visual Studio xx\VC\bin\vcvars32.bat 用于 32 位系统。

    在同一命令提示符下导航到 libsvm 目录并运行 C:\Program Files (x86)\Microsoft Visual Studio xx\VC\bin\amd64\nmake.exe -f Makefile.win 用于 64 位系统

    OR C:\Program Files (x86)\Microsoft Visual Studio xx\VC\bin\nmake.exe -f Makefile.win 用于 32 位系统

    二进制文件应该在 libsvm-3.xx\windows 文件夹中成功构建

    使用您的选项运行 grid.py

    在 grid.py 中,gnuplot.exe 通常设置为 tmp,这对我来说从来没有用过,所以我将 grid.py 中的 gnuplot 可执行路径更改为以下内容:

    self.gnuplot_pathname = r'C:\\Program Files (x86)\\gnuplot\\bin\\pgnuplot.exe'
    

    【讨论】:

      【解决方案4】:

      如果您使用选项-log2p 运行grid.py,您将获得输出get no rate。使用grid.py,您不能使用-log2p 选项。(在grid.py 中搜索-log2p 没有匹配项) 您可以在gridregression.py 中使用-log2p 选项。

      【讨论】:

        猜你喜欢
        • 2015-03-09
        • 2016-07-24
        • 2015-02-16
        • 2015-04-12
        • 2013-02-21
        • 2012-07-09
        • 1970-01-01
        • 2014-08-01
        • 2014-01-14
        相关资源
        最近更新 更多