关于SentiBank detectors的matlab中getmapping函数的修正

最近在做论文复现的时候抽取特征需要用到SentiBank detectors来进行图像的特征生成,然后运行起来就会报assumtype错误,其实这是由于matlab内置的bitshift已经进行了改动,源代码是根据matlab2013a运行的。

如果没有特殊需求,只需要下一个8.1版本的MCR运行binary文件夹中的Binconcept.exe即可,链接如下:
我找到解决方案的链接:
https://www.mathworks.com/matlabcentral/answers/332604-what-is-matlab-compiler-runtime-mcr-and-how-do-i-install-it

MCR下载链接:
https://www.mathworks.com/products/compiler/matlab-runtime.html

不过亲测这个速度非常之感人……大约需要2min左右的时间完成一张图片的1200个分类……而我要处理大约9w张左右的图片,这个速度肯定不行了……

因此我们需要改动source中的代码来减少分类任务,当你运行Biconcept时就会发现遇到了我第一段提到的问题,官方API说明如下:

https://ww2.mathworks.cn/help/matlab/ref/bitshift.html

其实shift第三个参数需要的是一个 类型名字,因此你只需要把代码shift的第三个参数改为‘uint8’代码就能正常了。
即所有shift代码如下进行修改:

j = bitset(bitshift(i,1,'uint8'),1,bitget(i,samples)); %rotate left

由于我之前遇到这个问题的时候也很头疼看到很多人再搜,也没找到合适的答案就自己写一篇,前人之苦后人不必再受。
而且用matlab2019a速度非常之快,几乎秒出(1200次分类)。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值