thundersvm的安装全过程(windows)

简介       

        在做毕设的过程中,碰到了sklearm的svm过慢的问题,因为sklearm的svm无法支持多线程,甚至只能调用一个核心,因此上网学习有无更快的svm库,直到我找到了thundersvm,开启了一条安装的不归路。。。。。。。

初期

 一开始安装时,直接使用

pip install thundersvm

确实能安装成功,但是无法import,一import就报错,报错如下

>>> import thundersvm
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Anaconda3\envs\test2\lib\site-packages\thundersvm\__init__.py", line 10, in <module>
    from .thundersvm import *
  File "C:\Anaconda3\envs\test2\lib\site-packages\thundersvm\thundersvm.py", line 52, in <module>
    raise FileNotFoundError("Please build the library first!")
FileNotFoundError: Please build the library first!

原因是没有生成对应的thundersvm的库lib,而生成这个库lib才是折磨人的事情

开始

  1. 先从github上(https://github.com/Xtra-Computing/thundersvm)将压缩包下载下来。
    并且解压缩到一个文件夹中,文件夹取名为thundersvm
  2. 需要先安装好CUDA,怎么安装的就不教了,网上很多教程
  3. 安装cmake,版本最好是3.27左右,如果报错了,可以尝试换更高或者更低的版本,下载地址:Index of /files (cmake.org)
  4. 最后是下载visual studio,看别人的博客有vs2017的,2016的,这里我使用的是vs2019,重点来了,在安装vs时需要勾选以下内容,不然后面安装thundersvm时会报错(折磨了我三天,吐了)做完后记得重启一下。参考博客这才是完美的答案--解决CMake时“could not find any instance of Visual Studio”的问题_could not find any instance of visual studio.-CSDN博客
  5. 安装完之后,在之前解压缩的thundersvm文件夹中创建一个名字为build的文件夹,进入该build文件夹后运行如下命令:cmake .. -DBUILD_SHARED_LIBS=TRUE -G"Visual Studio 16 2019" -A x64,若运行成功则有下图若不成功可以多换几个命令尝试下。参考博客:CMake Error: Could not create named generator Visual Studio 17 2022 win32-CSDN博客
  6. 到这一步恭喜你成功一半了,因为你已经生成了最重要的thundersvm.sln解决方案,此时在建立的build文件夹中,应该会有thundersvm.sln的文件,双击它用vs2019打开,并点击vs上方的生成->生成解决方案
  7. 到这已经快接近尾声了,此时thundersvm所要的库已经准备好了。接下类首先使用anaconda,先激活你要安装的虚拟环境,并进入thundersvm文件夹下的python,运行以下代码(最好用管理员打开)
    python setup.py install
    

  8. 如果到这,基本大多数人都结束了,你可以激活环境,import thundersvm试一下了。但是有些人还是显示还有个特别恶心人的一个点,在python3.8版本以上的,调用会报以下错误原因是这段程序放在python3.6环境中运行是没有问题的,但是python3.8环境中会报错。具体原因在于python3.8变更了Windows下动态链接库(DLL)的加载规则。新的规则提高了安全性,默认情况下仅能从可信的位置加载DLL依赖,一定程度上比避免诸如DLL劫持之类的安全风险。参考博客:Win10中Python3.8调用动态链接库时报错:FileNotFoundError: Could not find module解决方案_try using the full path with constructor syntax.-CSDN博客于是加上了以上的代码:

    from ctypes import CDLL
    import os
    dll_path = r"d:\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\thundersvm-0.3.4-py3.9.egg\\thundersvm\\thundersvm.dll"  # 替换为实际的 DLL 文件路
    tem = CDLL(dll_path, winmode=0)
    

    最后再import就成功了。

历时三天,真的快累死了,。。。。。。。。。。。。。。。。。。

以下是参考的博客:

【工具配置】【Windows】【cmake】安装thundersvm,GPU_thundersvm使用-CSDN博客

Windows10下 GPU版本的thundersvm的安装经验-CSDN博客

Win10中Python3.8调用动态链接库时报错:FileNotFoundError: Could not find module解决方案_try using the full path with constructor syntax.-CSDN博客

CMake Error: Could not create named generator Visual Studio 17 2022 win32-CSDN博客

CMake Error: Could not create named generator Visual Studio 16 2019解决方法-CSDN博客

  • 24
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值