亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的sigmoid函數(shù)FPGA實(shí)現(xiàn)

        2014-07-01 23:45:10劉毅飛
        微處理機(jī) 2014年1期
        關(guān)鍵詞:人工神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)者波形

        劉毅飛

        (湖北科技學(xué)院生物醫(yī)學(xué)工程學(xué)院,咸寧437100)

        基于Python的sigmoid函數(shù)FPGA實(shí)現(xiàn)

        劉毅飛

        (湖北科技學(xué)院生物醫(yī)學(xué)工程學(xué)院,咸寧437100)

        sigmoid函數(shù)是人工神經(jīng)網(wǎng)絡(luò)中通常采用的傳遞函數(shù),采用基于Python的軟硬件協(xié)同設(shè)計(jì)方法,在FPGA上實(shí)現(xiàn)了定點(diǎn)sigmoid函數(shù)。實(shí)驗(yàn)結(jié)果表明采用基于Python的軟硬件協(xié)同設(shè)計(jì)方法,可以利用Python上大量的包和模塊從而大幅度提高系統(tǒng)設(shè)計(jì)、仿真和校驗(yàn)的效率,并且能將軟件算法快速有效地轉(zhuǎn)換為硬件實(shí)現(xiàn),在整個(gè)軟硬件設(shè)計(jì)過程中僅采用Python語言,解決了當(dāng)前系統(tǒng)設(shè)計(jì)中軟硬件設(shè)計(jì)者分別采用不同設(shè)計(jì)語言存在的溝通問題。

        Python語言;現(xiàn)場(chǎng)可編程門陣列;sigmoid函數(shù);軟硬件協(xié)同設(shè)計(jì);神經(jīng)網(wǎng)絡(luò)

        1 引 言

        人工神經(jīng)網(wǎng)絡(luò)在模式識(shí)別、分類、人工智能領(lǐng)域有著廣泛應(yīng)用。在人工神經(jīng)網(wǎng)絡(luò)中,sigmoid函數(shù)是人工神經(jīng)網(wǎng)絡(luò)中常用的一種傳遞函數(shù),在嵌入式應(yīng)用中,sigmoid函數(shù)通??梢栽贒SP和FPGA上實(shí)現(xiàn)。FPGA作為一種可編程邏輯器件,具有功耗低、可以在上面實(shí)時(shí)實(shí)現(xiàn)大量的算法。目前在FPGA上面有許多神經(jīng)網(wǎng)絡(luò)和sigmoid函數(shù)的實(shí)現(xiàn)方案,在這些方案中普遍采用Verilog和VHDL語言進(jìn)行硬件設(shè)計(jì),而軟件設(shè)計(jì)通常采用其他高級(jí)語言比如C語言,Python語言等,由于這種設(shè)計(jì)方法硬件設(shè)計(jì)者和軟件設(shè)計(jì)者之間采用不同的設(shè)計(jì)語言,存在著仿真和校驗(yàn)效率低、軟硬件設(shè)計(jì)者之間溝通較為困難等問題,而軟硬件協(xié)同設(shè)計(jì)方法在軟硬件設(shè)計(jì)過程中僅采用一種設(shè)計(jì)語言,具體到神經(jīng)網(wǎng)絡(luò)上比如采用SystemC[1],handle-C[2]等基于C語言的軟硬件協(xié)同設(shè)計(jì)語言。Python[3]是一種簡(jiǎn)單易學(xué)并且功能強(qiáng)大的編程語言,采用這種新的基于Python的軟硬件設(shè)計(jì)方法,可以通過Python擴(kuò)展包MyHDL[4]使其能支持硬件設(shè)計(jì)和仿真,并能夠在FPGA上快速實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)中的sigmoid函數(shù)。

        2 方法

        2.1 sigmoid的FPGA實(shí)現(xiàn)方法

        在人工神經(jīng)網(wǎng)絡(luò)中,通常使用的一種sigmoid函數(shù)為log-sigmoid函數(shù),其公式如式(1)所示,函數(shù)f(x)的值域在(0,1)之間,

        sigmoid的FPGA實(shí)現(xiàn)方法主要包括LUT查找表,分段線性逼近,高階逼近或泰勒級(jí)數(shù)展開[5-8]等。本文采用文獻(xiàn)[8]中描述的分段線性逼近方法,計(jì)算公式如式(2)

        2.2 log-sigmoid定點(diǎn)數(shù)的格式表示

        通常在FPGA上的數(shù)可以采用定點(diǎn)和浮點(diǎn)兩種方式來表示,由于定點(diǎn)的表示方式盡管設(shè)計(jì)較為復(fù)雜,但是速度較快,占用FPGA資源較小,通常采用定點(diǎn)來完成。本設(shè)計(jì)中輸入數(shù)x為9位定點(diǎn)數(shù),其中符號(hào)位1位,整數(shù)4位,小數(shù)4位;輸出y也為9位定點(diǎn)數(shù),符號(hào)位1位,整數(shù)1位,小數(shù)位7位。式(2)中的常數(shù)采用符號(hào)位1位,整數(shù)1位,小數(shù)位7位的表示方式。

        2.3 Python軟硬件協(xié)同設(shè)計(jì)

        基于Python的軟硬件協(xié)同設(shè)計(jì)過程如圖1所示[9],圖中Python的硬件設(shè)計(jì)部分采用MyHDL可綜合子集,最后使用MyHDL的toVerilog()方法將MyHDL設(shè)計(jì)自動(dòng)轉(zhuǎn)換為相應(yīng)的Verilog代碼,而Python硬件測(cè)試平臺(tái)可以使用任何Python語句從而支持復(fù)雜的仿真校驗(yàn)。另外MyHDL支持與Verilog混合仿真,設(shè)計(jì)的硬件測(cè)試平臺(tái)還可以用來作為轉(zhuǎn)換后的Verilog代碼測(cè)試平臺(tái),也就是測(cè)試平臺(tái)可以重用,不用重新編寫,仿真速度和設(shè)計(jì)效率大大提高。在仿真符合要求之后,就可以進(jìn)行FPGA設(shè)計(jì)流程后續(xù)的下載,綜合和測(cè)試工作。

        3 結(jié)果

        3.1 實(shí)驗(yàn)環(huán)境

        Python上存在大量的軟件包,模塊可以用來提高設(shè)計(jì)效率,實(shí)驗(yàn)用到的Python包包括:硬件設(shè)計(jì)和仿真使用MyHDL 0.8[10],繪圖使用matplotlib,定點(diǎn)設(shè)計(jì)采用fixedpoint,數(shù)值運(yùn)算采用numpy。波形查看工具為GTKWAVE,Python開發(fā)環(huán)境使用SPE(Stani’s Python Editor),所有的這些工具都是免費(fèi)的。FPGA器件采用altera公司CycloneII2C35F672C6,編譯綜合采用Quartus 12.1sp1 webpack。

        圖1 基于Python軟硬件協(xié)同設(shè)計(jì)流程

        3.2 仿真波形

        在設(shè)計(jì)過程中生成的VCD仿真波形可以隨時(shí)采用GTKWAVE查看,可以便于校驗(yàn)設(shè)計(jì)是否正確,最終設(shè)計(jì)完成的sigmoid函數(shù)輸出的仿真模擬波形如圖2所示。

        3.3 精度及誤差

        由于整個(gè)過程采用Python設(shè)計(jì),Python存在大量的軟件包可以使用,來評(píng)估設(shè)計(jì)精度和繪制各種圖,采用matplotlib包繪制的MyHdl完成的sigmoid函數(shù)FPGA實(shí)現(xiàn)和numpy的sigmoid函數(shù)比較圖如圖3所示,函數(shù)輸入x在[-8,8]之間時(shí)的sigmoid函數(shù)FPGA實(shí)現(xiàn)誤差如圖4所示。

        圖2 MyHDL的sigmoid實(shí)現(xiàn)的仿真波形

        圖3 sigmoid函數(shù)的實(shí)現(xiàn)比較圖

        圖4 MyHDL的sigmoid函數(shù)的FPGA實(shí)現(xiàn)的誤差圖

        3.4 綜合結(jié)果

        在仿真,校驗(yàn)和精度符合系統(tǒng)設(shè)計(jì)要求后,采用MyHdl包的toVerilog()方法將Python的sigmoid硬件描述自動(dòng)轉(zhuǎn)換為Verilog描述,另外MyHDL本身還支持與modelsim的協(xié)同仿真。使用modelsim仿真的波形如圖5所示,與圖2的Python環(huán)境下仿真波形相似,采用Quartus編譯綜合后FPGA資源使用情況為:使用125個(gè)LE,9個(gè)寄存器。

        圖5 sigmoid函數(shù)的Modelsim仿真波形圖

        4 結(jié)束語

        采用一種新的基于Python的軟硬件協(xié)同設(shè)計(jì)方法,在FPGA上實(shí)現(xiàn)了在人工神經(jīng)網(wǎng)絡(luò)上廣泛使用的sigmoid函數(shù)。設(shè)計(jì)仿真過程使用Python語言擴(kuò)展包MyHDL及其他python包,使得仿真校驗(yàn)和傳統(tǒng)的設(shè)計(jì)方法相比效率更高,仿真速度也更快。從轉(zhuǎn)換后的硬件綜合結(jié)果可以看出,Python也具有較好的硬件描述能力,可以有效地完成硬件設(shè)計(jì)。

        現(xiàn)代系統(tǒng)的算法越來越復(fù)雜,傳統(tǒng)的軟硬件設(shè)計(jì)分開的方法越來越不適應(yīng)市場(chǎng)對(duì)設(shè)計(jì)的要求。采用Python的軟硬件協(xié)同設(shè)計(jì)方法,軟硬件設(shè)計(jì)僅僅采用一種語言Python,軟硬件設(shè)計(jì)者之間不存在溝通問題,另外仿真和校驗(yàn)的速度也會(huì)大大提高。所以采用基于Python的軟硬件協(xié)同設(shè)計(jì)方法設(shè)計(jì)效率大大提高,設(shè)計(jì)的產(chǎn)品能更快地進(jìn)入市場(chǎng)。

        [1]Lettnin D,Braun A,Bodgan M,et al.Synthesis of Embedded SystemC Design:A Case Study of Digital Neural Networks[C].Proceedings of the Design,Automation and Test in Europe Conference and Exhibition Designers:IEEE,2004:248-253.

        [2]Pandya V,Areibi S,Moussa M.A Handel-C Implementation of the Back-Propagation Algorithm On Field Programmable Gate Arrays[C].Proceedings of the 2005 International Conference on Reconfigurable Computing and FPGAs:IEEE,2005.

        [3]Python Software Foundation.Python Documentation(Python 2.7)[EB/OL].[2013-6-10],http://www.python.org.

        [4]Decaluwe J.MyHDL:a Python-Based Hardware Description Language[J].Linux Journal,2004,127(10):5.

        [5]Tommiska M T.Efficient digital implementation of the sigmoid function for reprogrammable logic[C].IEEE Proceedings-Computers and Digital Techniques:IET,2003:403-411.

        [6]Himavathi S,Anitha D,Muthuramalingam A.Feedforward Neural Network Implementation in FPGA Using Layer Multiplexing for Effective Resource Utilization[J].IEEE TRANSACTIONS ON NEURAL NETWORKS,2007,18(3):880-888.

        [7]Namin,A.H.Leboeuf,K.Wu Huapeng Artificial neural networks activation function HDL coder[C].IEEE International Conference on Electro/Information Technology.Windsor,ON:IEEE,2009:389-392.

        [8]Amin H,Curtis K M,Hayes-Gill B R.Piecewise linear approximation applied to nonlinear function of a neural network[C].IEEE Proceedings-Circuits,Devices and Systems:IET,1997:313-317.

        [9]劉毅飛.基于Python的軟硬件協(xié)同設(shè)計(jì)方法[J].現(xiàn)代電子技術(shù),2013,36(8):76-78.

        [10]Decaluwe J.MyHDLmanual[R].Decaluwe J.2013.5

        FPGA Im p lementation of Sigmoid Function Based on Python

        LIU Yi-fei
        (School of Biomedical Engineering,Hubei University of Science and Technology,Xianning 437100,China)

        Sigmoid is an activation function which is commonly used in the artificial neutral network.This paper implementes the sigmoid function on FPGA by using the software and hardware co-design methodology based on Python.The result shows that themethod can highly improve efficiency of system design,simulation and verification by using many python packages and modules,and it can quickly convert the software algorithm to its hardware implementation.During the software and hardware design,only python design language is used,so there is no gap between the hardware and software designers.

        Python;FPGA;Sigmoid;Software-hardware co-design;Neutral network

        10.3969/j.issn.1002-2279.2014.01.020

        TN407

        :A

        :1002-2279(2014)01-0073-03

        劉毅飛(1971-),男,湖北咸寧人,副教授,碩士,主研方向:嵌入式系統(tǒng)、醫(yī)學(xué)圖像處理與分析。

        2013-03-15

        猜你喜歡
        人工神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)者波形
        對(duì)《壓力容器波形膨脹節(jié)》2018版新標(biāo)準(zhǔn)的理解及分析
        2020德國iF設(shè)計(jì)獎(jiǎng)
        利用人工神經(jīng)網(wǎng)絡(luò)快速計(jì)算木星系磁坐標(biāo)
        人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)簡(jiǎn)單字母的識(shí)別
        電子制作(2019年10期)2019-06-17 11:45:10
        2019德國IF設(shè)計(jì)大獎(jiǎng)
        基于LFM波形的靈巧干擾效能分析
        基于ARM的任意波形電源設(shè)計(jì)
        大連臺(tái)使用CTS-1記錄波形特點(diǎn)
        楊敬:深水區(qū)醫(yī)改設(shè)計(jì)者
        深水區(qū)醫(yī)改設(shè)計(jì)者
        乳乱中文字幕熟女熟妇| 久久久午夜精品福利内容| 女人色毛片女人色毛片18| 69av在线视频| 美腿丝袜美腿国产在线| 国产精品国产传播国产三级| 一区二区三区美女免费视频 | 国产三级黄色大片在线免费看| 亚洲人成网站在线播放2019| 无码国产福利av私拍| 亚洲av有码在线天堂| 免費一级欧美精品| 美腿丝袜视频在线观看| 亚洲综合av一区二区三区蜜桃| 无码国产69精品久久久久孕妇| 色猫咪免费人成网站在线观看| 亚洲无线码一区在线观看| 亚洲av日韩av天堂久久不卡| 一区二区亚洲精品在线| 国产精品国三级国产av| 99久久精品国产成人综合| 中文字幕无码免费久久9| 手机在线播放成人av| 风韵丰满熟妇啪啪区老老熟妇| 男女上下猛烈啪啪免费看| AV永久天堂网| 免费的黄网站精品久久| 中文字幕一区二区三区四区| 人妻丰满av无码中文字幕| 精品久久久噜噜噜久久久| 久久久久亚洲AV片无码乐播| 国产白浆大屁股精品视频拍| 寂寞人妻渴望被中出中文字幕| 青春草在线视频免费观看| 国产黑色丝袜在线观看下| 日韩极品视频在线观看| 中文字幕乱码亚洲在线| 一二区成人影院电影网| www插插插无码免费视频网站 | 在线观看人成网站深夜免费| 亚洲婷婷久悠悠色悠在线播放|