十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這篇文章給大家分享的是有關(guān)Python中numpy實(shí)現(xiàn)結(jié)構(gòu)體的示例的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
具體代碼如下:
cal_ctrl = np.dtype({'names':['ifrm_width',#圖片寬度 y 'ifrm_height',#圖片長(zhǎng)度 y 'conv_size',#卷積核大小較大3*3 y 'conv_pad',#是否有零填充 y 'conv_std',#卷積步長(zhǎng) y 'ifrm_num',#計(jì)算一個(gè)輸出幀(feature map)需要多少個(gè)輸入幀。從1計(jì)數(shù)。需要是8的整數(shù)倍。 y 'ifrm_bsptr',#存放所有輸入幀基地址的DDR地址指針。(*iframe_base_ptr)指向的DDR空間依次存放各個(gè)輸入幀。 t 'relu_en',#當(dāng)為為T(mén)RUE第一層卷積輸出為【0~127】:當(dāng)為Flash第一層卷積輸出為【-】 'res_en',#當(dāng)為T(mén)RUE feature map層累加功能,累加后再做Relu:當(dāng)為Flashfeature map層累加功能 'pool_en',#第一次2*2較大池化標(biāo)準(zhǔn)位 'convp_bsptr',#存放卷積計(jì)算的濾波系數(shù)的地址指針。W t 'convk_bsptr',#存放卷積計(jì)算的K參數(shù)(每個(gè)輸出幀的bias)的地址指針。b t 'res_bsptr',#存放Feature map累加層的數(shù)據(jù)的地址指針。 t #----------------------second depth wise conv---------------------- 'dw_en',#Depth wise 卷積使能。 'dw_pad',#True 零填充,F(xiàn)lash不需要填充 'dw_std',#步長(zhǎng) 'dwp_bsptr',#存放Depth wise卷積計(jì)算的濾波系數(shù)的地址指針。包含K參數(shù)(每個(gè)輸出幀的bias)。 'dw_relu_en',#1'b1:使能Relu,第二層卷積輸出為[0~127]的整數(shù);1'b0:不使能,第二層卷積輸出為[-128~127]的整數(shù)。 #-------------------------- frame output ctrl------------------------- 'ofrm_width',#輸出幀的寬 'ofrm_height',#輸出幀的長(zhǎng) 'ofrm_num',#輸出幀的通道數(shù) 'ofrm_bsptr',#輸出幀地址指針 'conv_end'],#繼續(xù)去讀conv common ctrl info隊(duì)列,進(jìn)行卷積計(jì)算。1:卷積計(jì)算結(jié)束,發(fā)出中斷。 'formats':[np.uint16,np.uint16,np.uint8 ,bool,np.uint8,np.uint16,np.uint32,bool,bool,bool,np.uint32,np.uint32,np.uint32, bool,bool,np.uint8,np.uint32,bool,np.uint16,np.uint16,np.uint16,np.uint32,bool]},align=True)#結(jié)構(gòu)體中數(shù)據(jù)類(lèi)型
在這段代碼中使用np.dtype來(lái)創(chuàng)建結(jié)構(gòu)的每個(gè)字段,并且對(duì)每個(gè)字段的類(lèi)型進(jìn)行初始化類(lèi)型,
可以使用下面的代碼來(lái)添加實(shí)例;
a = np.array([(......),(.......)], dtype=cal_ctrl) #或者 a= np.empty((1), dtype=cal_ctrl)#創(chuàng)建了一個(gè)空的實(shí)例 #可以使用numpy創(chuàng)建數(shù)組的方法來(lái)創(chuàng)建它的實(shí)例,需要自創(chuàng)建數(shù)組的函數(shù)中加dtype=cal_ctrl
可以使用a.dtype來(lái)查看結(jié)構(gòu)的數(shù)據(jù)類(lèi)型
a[0][''ifrm_num''] = 45 #通過(guò)a[][]來(lái)修改或者訪問(wèn)結(jié)構(gòu)的屬性。
擴(kuò)展:使用下面的代碼可以將python結(jié)構(gòu)裝換為bin二進(jìn)制文件來(lái)提供給C語(yǔ)言使用
a.tofile("test.bin")
感謝各位的閱讀!關(guān)于Python中numpy實(shí)現(xiàn)結(jié)構(gòu)體的示例就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!