您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Python中numpy實現結構體的示例的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
具體代碼如下:
cal_ctrl = np.dtype({'names':['ifrm_width',#圖片寬度 y 'ifrm_height',#圖片長度 y 'conv_size',#卷積核大小最大3*3 y 'conv_pad',#是否有零填充 y 'conv_std',#卷積步長 y 'ifrm_num',#計算一個輸出幀(feature map)需要多少個輸入幀。從1計數。需要是8的整數倍。 y 'ifrm_bsptr',#存放所有輸入幀基地址的DDR地址指針。(*iframe_base_ptr)指向的DDR空間依次存放各個輸入幀。 t 'relu_en',#當為為TRUE第一層卷積輸出為【0~127】:當為Flash第一層卷積輸出為【-】 'res_en',#當為TRUE feature map層累加功能,累加后再做Relu:當為Flashfeature map層累加功能 'pool_en',#第一次2*2最大池化標準位 'convp_bsptr',#存放卷積計算的濾波系數的地址指針。W t 'convk_bsptr',#存放卷積計算的K參數(每個輸出幀的bias)的地址指針。b t 'res_bsptr',#存放Feature map累加層的數據的地址指針。 t #----------------------second depth wise conv---------------------- 'dw_en',#Depth wise 卷積使能。 'dw_pad',#True 零填充,Flash不需要填充 'dw_std',#步長 'dwp_bsptr',#存放Depth wise卷積計算的濾波系數的地址指針。包含K參數(每個輸出幀的bias)。 'dw_relu_en',#1'b1:使能Relu,第二層卷積輸出為[0~127]的整數;1'b0:不使能,第二層卷積輸出為[-128~127]的整數。 #-------------------------- frame output ctrl------------------------- 'ofrm_width',#輸出幀的寬 'ofrm_height',#輸出幀的長 'ofrm_num',#輸出幀的通道數 'ofrm_bsptr',#輸出幀地址指針 'conv_end'],#繼續去讀conv common ctrl info隊列,進行卷積計算。1:卷積計算結束,發出中斷。 '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)#結構體中數據類型
在這段代碼中使用np.dtype來創建結構的每個字段,并且對每個字段的類型進行初始化類型,
可以使用下面的代碼來添加實例;
a = np.array([(......),(.......)], dtype=cal_ctrl) #或者 a= np.empty((1), dtype=cal_ctrl)#創建了一個空的實例 #可以使用numpy創建數組的方法來創建它的實例,需要自創建數組的函數中加dtype=cal_ctrl
可以使用a.dtype來查看結構的數據類型
a[0][''ifrm_num''] = 45 #通過a[][]來修改或者訪問結構的屬性。
擴展:使用下面的代碼可以將python結構裝換為bin二進制文件來提供給C語言使用
a.tofile("test.bin")
感謝各位的閱讀!關于Python中numpy實現結構體的示例就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。