• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

用fpga实现svm,怎么操作?

Jaleme 2017-05-24 浏览量:2529
需要在fpga上实现svm算法,把已经训练好的svm程序在fpga上实现,然后能对输入信号进行分类即可,请问如何完成,求指点
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • SVM  支持向量机,一种机器学习的决策机制,背后有大量的数学计算。不过好在楼主是SVM已经学习好了,那么还是工作量会稍微少一点。

    从原理上说,SVM有一个传输函数,对应一组系数,另一部分是调整系数的函数,根据训练结果来不断调整参数。


    对于你的情况,只要在FPGA实现第一部分,第二部分不需要实现,但是你必须承担的后果是你的向量机模型在使用中不再更新。其实,这个都不用FPGA实现,因为主要的运算在迭代调整系数那里,真正做分类估计的没多大计算量。


    所以方案一,可以通过FPGA的内置处理器实现,这样你的工作量最少;

    方案二, 用verilog实现。这个不是很推荐,但是可以试试,他的速度确实快,但是研发周期也长,而且你会碰见位宽啥的变化,因为FPGA处理浮点数啥的都要你自己写。


    希望你明白利害关系之后如果还是选择方案二,就去找下SVM传输模型。这个不难找。难的大头你不涉及。

    • 发布于 2017-05-25
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 把分类算法拆分看看都需要哪些基础计算,对应FPGA中的哪些ip,乘法器,加法器,卷积等等
    使用算法流水线的设计,确定整个设计的几个基本模块,分块调试成功后再组合测试
    训练交给计算机软件去做,训练好的参数,存在rom里面。再把参数拿出来和你的输入序列数一起做一系列计算。

    这是个使用硬件做科学计算的问题,问题本身并不复杂,要考虑的问题就是流水线设计还要哪些地方可以并行化了。

    楼主可以参考一下这个思路

    • 发布于2017-05-25
    • 举报
    • 评论 0
    • 1
    • 0

  • 这个太专业,大家最多能给提供一点思路,具体可能还需要楼主自己努力啦~
    • 发布于2017-05-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个真心推荐使用zynq或CV,使用硬件快速计算,使用处理器软件组织和接口,非常灵活,如果能做出ip群也方便升级
    • 发布于2017-05-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

用fpga实现svm,怎么操作?