999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

移植Libsvm軟件實現TMS320F28335的支持向量機

2016-06-01 00:48:51盧昆鵬潘宏俠
單片機與嵌入式系統應用 2016年3期
關鍵詞:程序

盧昆鵬,潘宏俠

(中北大學 機械與動力工程學院,太原 030051)

?

移植Libsvm軟件實現TMS320F28335的支持向量機

盧昆鵬,潘宏俠

(中北大學 機械與動力工程學院,太原 030051)

摘要:化簡了支持向量機算法在實際應用中的步驟,提出了利用分解和提取代碼的方法在TMS320F28335芯片中移植Libsvm軟件,并實現了支持向量機。該方法解決了在C2000系列DSP芯片中實現支持向量機的問題,同時適用于其他型號的芯片。實驗結果表明,在保證較高的預測正確率、較快的運行速度和較大的數據量讀取的前提下,Libsvm能夠正確運行于芯片中。

關鍵詞:支持向量機;Libsvm;DSP;TMS320F28335;嵌入式系統

引言

支持向量機在小樣本、非線性及高維模式識別中表現出許多特有的優勢,并能夠推廣應用到函數擬合等其他機器學習問題中[1-4]。目前實現支持向量機的方法有軟件方法(如Libsvm、Liblinear、mySVM、SVMlight等[1]),也有硬件方法(如約翰霍普金斯大學開發的Kerneltron芯片[2]),但是這兩種方法都有缺點,如成本高、體積大、耗能多、通用性差等。

TI公司應用于控制領域的C2000系列芯片具有低功耗、低成本、通用性強和可實時控制的優點。采用其作為運行SVM的平臺,實現支持向量機的實時應用,比PC系統體積小,其控制能力和數據處理能力可以在滿足工作需要的同時有效控制成本。但是此類芯片具有運行頻率較低、可用內存小的缺點,如果在其中運行大型程序或讀取大量數據,會受到運行資源的限制。本文針對此問題,提出了一種解決方案。

1支持向量機的算法

支持向量機(SVM)能非常成功地處理回歸問題(時間序列分析)和模式識別(分類問題、判別分析)等諸多問題,并可推廣于預測和綜合評價等領域。C-支持向量分類機的算法步驟為[3]:

① 給定訓練集

T={(x1,y1),…,(xl,yl)}∈(Rn×y)l

其中,xi∈Rn,yi∈y={1,-1},i=1,2,…,l。

② 選取適當的核函數K(x,x’)及懲罰參數C>0。

③ 構造并求解凸二次規劃問題:

其中,0≤αi≤C,i=1,…,l,

⑤ 構造決策函數f(x)=sgn(g(x)),其中

⑥ 通過決策函數f(x)=sgn(g(x))預測數據。

2方案的設計和實現

2.1代碼分解和抽取

Libsvm是臺灣大學林智仁(LinChih-Jen)教授等開發設計的一個簡單、易于使用和快速有效的SVM模式識別與回歸的開源軟件包[5]。其源代碼文件有5個:svm-train.c,svm-predict.c,svm-scale.c,svm.h和svm.cpp。其中svm-train.c是訓練樣本工具的代碼,上述6步算法中的①~⑤都是在這個代碼文件中實現的;svm-predict.c是預測工具的代碼,實現上述算法中的第⑥步;svm-scale.c是歸一化數據工具的代碼;svm.h是頭文件;svm.cpp是類的實現代碼。后3個軟件分別實現訓練、預測和歸一化數據的功能。代碼文件svm-train.c、svm-predict.c、svm-scale.c分別與svm.h和svm.cpp編譯就可以得到這3個軟件。Libsvm代碼結構如圖1所示。

圖1 Libsvm代碼結構

如果在DSP平臺上實現以上支持向量分類機的6步算法,不僅需要進行大量的計算,而且實現起來非常麻煩。事實上,在實際應用的過程中,只需要實現第6步。

Libsvm的5個文件的代碼加起來總共有四千多行,而且分為3個共用類實現文件和頭文件的程序,把各部合為一個程序并且移植運行于DSP平臺難度較大。考慮到以上因素,同時為了節省DSP的存儲資源和運行資源,采取了以下的移植方案:

① 訓練數據部分在PC里實現,訓練完成后保存訓練模型,然后存儲在SD卡上;

② 預測部分在DSP里實現,即把svm-predict.c、svm.h、svm.cpp編譯運行于DSP內;

③ 預測時,利用DSP芯片上的SPI模塊和SD卡進行通信,讀取SD卡上的模型來對存儲于卡上的數據進行預測;

④ 預測結果存儲于SD卡內。

實現方案如圖2所示。

圖2 實現方案

預測部分代碼的主要函數包括:

read_model_header()——讀模型的參數;

svm_load_model()——載入模型;

svm_predict(),svm_predict_values()——實現預測功能。

類文件svm.cpp中需要提取的類成員函數包括:

k_function()——核函數的選擇函數;

dot()——內積函數;

svm_get_labels()——獲取標簽函數;

powi()——冪函數。

將這些函數代碼從svm-predict.c、svm.h和svm.cpp中提取出來,整合為一個程序文件。

2.2移植

代碼移植之前需要考慮的問題有:①源代碼編譯之后的程序運行于Win32控制平臺,利用命令行輸入參數,所以設置參數、傳遞參數的方式都與DSP程序有所不同;②在DSP運行標準輸入輸出函數會占用很多系統資源,使系統運行變慢,甚至會導致程序無法運行;③從SD卡中存儲和讀取文件,需要依賴于文件系統。

2.2.1參數的傳遞

源代碼編譯后的程序是從命令行讀取參數的,而DSP平臺沒有命令行,因而必須改變讀取參數方式,例如可把參數設置于文本文件中,再從文本文件中讀取參數,或者在得到訓練模型文件后,直接把參數固化于程序中。程序修改包括:

① 將read_model_header()函數中的格式化讀取函數FSCANF()用獲取字符串函數f_gets()、分解字符串函數strtok()和字符串轉浮點函數strtod()來代替,或者在read_model_header()函數中直接給模型結構體的各個參數變量賦值;

② svm-predict.c里面main函數參數改為void,增加相應的文件讀寫函數。

2.2.2利用文件系統接口函數

圖3   利用FatFS接口函數   存儲和讀取文件

從SD卡讀取文件,需要移植文件系統,本文所采用的是FatFS文件系統。其次,由于在DSP中使用標準I/O函數會占用很多的運行資源,導致程序無法正常運行,所以必須用FatFS文件系統的API接口函數來代替標準I/O函數,如圖3所示。

最后,還需屏蔽掉類似“fprintf(stderr,"can't open model file %s ",argv[i+1]);”的錯誤信息打印的語句,因為此類語句輸出為PC屏幕終端;或者可以把錯誤信息輸出到txt文本文件上,調取文件便可閱覽信息。

2.3優化運行環境參數和支持向量機的參數

嵌入式平臺的運行資源相對于PC來說比較少,如果需要運行大型程序或者是讀取大量數據,必須要考慮可用RAM和Flash的大小以及堆棧段的大小。DSP的.stack段也稱為系統棧,主要作用有:保存函數調用后的返回地址;給局部變量分配存儲空間;傳遞函數參數;保存臨時結果。

圖4 讀取數據到.stack段中

TMS320F28335型數字信號處理器為TI公司的TMS320C28x系列浮點DSP控制器,頻率為150 MHz,片內RAM大小為34 KB×16,片內Flash大小為256 KB×16。其.stack段大小默認為0x400,需要讀取大量數據時可能出現.stack段空間不足的情況,造成程序運行錯誤[7]。為了正確讀取數據,需要修改分配RAM空間的CMD文件,分配更大的空間給.stack段。讀取數據到.stack段中的示意圖如圖4所示。

修改后的程序主要分為3部分:初始化部分、讀取模型部分和預測部分。完成以上工作,程序便可以正常運行于DSP平臺。

Libsvm軟件包提供了支持向量機的參數優化工具grid.py。利用多重交叉驗證的方法對C-支持向量機的參數進行優化,可提高預測結果的正確率。在輸入訓練集文件之后,利用grid.py對支持向量機的參數C和gamma尋優,如圖5所示。

圖5 對支持向量機的參數尋優

3實驗驗證與比較

訓練集在PC中訓練后得到的模型,參數見表1。實驗數據為具有13個特征量的132組數據,轉換為Libsvm可讀取的數據類型之后,保存為data.txt文件,并存入SD卡中。利用CCS3.3軟件進行在線仿真時,程序運行時間在5 s之內。實驗結果如表2所列。

表1 模型參數

表2 預測結果(默認參數 序號∶標簽)

實驗結果表明,程序運行結果與原軟件包在PC平臺中的運行結果一致。訓練集支持向量的數量(nr)越多,預測正確率越高;但是由于受硬件的運行資源限制,支持向量不能過多。若采用優化過的參數和核函數,預測正確率更高(見表3)。程序燒錄到芯片中運行,結果與在線仿真時一致。

表3 優化前后的預測正確率比較

結語

經實驗驗證,在具備較高的預測正確率、較快的運行速度和較大的數據量讀取的同時,Libsvm能夠正確運行于芯片中。DSP的低功耗、便攜性、較高的運算速度優勢和支持向量機的算法優越性相結合, 促進了結合DSP的支持向量機模式識別技術在實踐中的廣泛應用[8]。本文的方案對于支持向量機在生物識別、文本分類等領域的具體應用和實現同樣具有借鑒意義。

參考文獻

[1] 鄧乃揚,田英杰.數據挖掘中的新方法—支持向量機[M].北京:科學出版社,2004.

Realization of TMS320F28335 Support Vector Machine Through Porting Libsvm

Lu Kunpeng,Pan Hongxia

(School of Mechanical and Power Engineering,North University of China,Taiyuan 030051,China)

Abstract:The steps in the practical application of support vector machine algorithm are simplified.The method of decomposing and extracting code in TMS320F28335 chip is proposed to realize support vector machine.The method solves the realization problem of support vector machine in C2000 series DSP chip,and it is suitable for other types of chip.The experiment results show that Libsvm can run on the chip properly under the premise of high prediction accuracy,fast running speed and large amount of data reading.

Key words:support vector machine;Libsvm;DSP;TMS320F28335;embedded system

中圖分類號:TP391.43

文獻標識碼:A

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 欧美中文一区| 久草青青在线视频| 日韩a级毛片| 思思热精品在线8| 午夜性刺激在线观看免费| 中文字幕日韩视频欧美一区| 91美女视频在线观看| 亚洲综合婷婷激情| 亚洲国产天堂久久综合| 亚洲国产亚综合在线区| 久久99国产视频| 国产h视频在线观看视频| 九色91在线视频| 欧美中出一区二区| 在线99视频| 激情综合图区| 亚洲天堂啪啪| 成人一级免费视频| 亚洲人成影院午夜网站| 国产成人av大片在线播放| 久久免费看片| lhav亚洲精品| 婷婷伊人五月| 美女无遮挡免费视频网站| 国产日本视频91| 成人在线不卡视频| 国产高清免费午夜在线视频| 久久中文字幕av不卡一区二区| 成年女人a毛片免费视频| 99久久国产自偷自偷免费一区| 在线观看无码a∨| 99精品国产高清一区二区| 激情五月婷婷综合网| 亚洲日韩精品综合在线一区二区| 制服丝袜无码每日更新| 国产综合欧美| 在线综合亚洲欧美网站| 亚洲第一区在线| 狠狠色综合网| 91国内在线观看| 欧美亚洲国产精品久久蜜芽| 色AV色 综合网站| 精品久久久无码专区中文字幕| 情侣午夜国产在线一区无码| 有专无码视频| 亚洲一区二区成人| 国产成人做受免费视频| 91色综合综合热五月激情| 青草娱乐极品免费视频| 国产成人精品一区二区三在线观看| 欧美激情福利| 国产综合另类小说色区色噜噜| 一级香蕉人体视频| 国产剧情国内精品原创| 日韩在线1| 亚洲黄色高清| 国产不卡网| 日本三级黄在线观看| 亚洲性色永久网址| 国产精品三级av及在线观看| 国产在线自揄拍揄视频网站| 久久伊伊香蕉综合精品| 亚洲欧美另类专区| 久久久久久久久亚洲精品| 国产噜噜噜视频在线观看| 亚洲娇小与黑人巨大交| 亚洲人成影视在线观看| 国产中文一区a级毛片视频| 久久天天躁狠狠躁夜夜2020一| 国产激情无码一区二区三区免费| 无遮挡一级毛片呦女视频| 久热中文字幕在线观看| 亚洲无码电影| 国产麻豆福利av在线播放| 久久黄色小视频| 成人av专区精品无码国产| 美女内射视频WWW网站午夜| 亚洲日韩高清无码| 亚洲综合中文字幕国产精品欧美| 国产农村精品一级毛片视频| 午夜视频www| 中文字幕中文字字幕码一二区|