首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab中的Fast DP (Viterbi for profile HMM)

Matlab中的Fast DP (Viterbi for profile HMM)
EN

Stack Overflow用户
提问于 2014-01-19 03:12:39
回答 1查看 156关注 0票数 0

我在Matlab中遇到了viterbi logodds计算的效率问题。

基本上,我的问题是必须有嵌套的循环,这会大大减慢代码的速度。这是最昂贵的部分:

代码语言:javascript
复制
for i=1:input_len
    for j=1:num_states
        v_m=emission_value+max_over_3_elements; %V_M
        v_i=max_over_2_elements; %V_I
        v_d=max_over_2_elements; %V_D
    end
end

我相信我不是第一个将viterbi实现为profile HMM的人,所以也许你会有一些建议。我还研究了Matlab自己的hmmviterbi,但没有发现(也使用了嵌套循环)。我还测试了用一些基本操作替换max,但没有明显的区别(实际上有点慢)。

EN

回答 1

Stack Overflow用户

发布于 2014-01-19 04:25:13

不幸的是,在Matlab中循环很慢(但在最近的版本中变得更好)-我不认为它可以很容易地向量化/并行化,因为循环中的操作不独立于其他迭代。

这似乎是MEX的一项任务--用C语言编写它应该不会有太多的工作,而且预期的加速比可能会相当大。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21208664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档