python讀取npy文件數(shù)據(jù)實(shí)例
Numpy binary files (NPY, NPZ)
注:.npy文件是numpy專用的二進(jìn)制文件。
1. 讀取與保存
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) np.save('weight.npy', arr) loadData = np.load('weight.npy') print("----type----") print(type(loadData)) print("----shape----") print(loadData.shape) print("----data----") print(loadData)
至于具體API參見:https://docs.scipy.org/doc/numpy/index.html
2. 實(shí)戰(zhàn)案例
在深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中通常需要讀取預(yù)訓(xùn)練權(quán)重,預(yù)訓(xùn)練權(quán)重通常是 .npy文件,比如vgg16.npy(https://pan.baidu.com/s/1Ru5FJVSPjYTHZwlmzRwRvQ 提取碼:ygxw)。本次就以分析vgg16.npy為例進(jìn)行說明。
import numpy as np # 注意編碼方式 pre_train = np.load("vgg16.npy", allow_pickle=True, encoding="latin1") print("------type-------") print(type(pre_train)) print("------shape-------") print(pre_train.shape) print("------data-------") print(pre_train)
這是個(gè)啥?為啥shape沒有? 但是可以看出來 pre_train 里元素應(yīng)該是一個(gè)字典,我們嘗試取出來。
注:ndarray.item()是復(fù)制數(shù)組中的一個(gè)元素,并將其返回。具體語法參見:https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.item.html?highlight=item#numpy.ndarray.item
import numpy as np pre_train = np.load("vgg16.npy", allow_pickle=True, encoding="latin1") data_dic = pre_train.item() print("------type-------") print(type(data_dic)) print("------conv1_1 data-------") print(data_dic['conv1_1']) # 返回一個(gè)列表,該列表有兩個(gè)array,表示conv1_1的權(quán)重w與偏置b print("------conv1_1 shape-------") print((data_dic['conv1_1'][0]).shape)
看看結(jié)果:
可以發(fā)現(xiàn),這是第一個(gè)卷積層的權(quán)重參數(shù),輸入channel是3,輸出channel是64。
附:python中 .npy文件的讀寫操作實(shí)例
numpy中的二進(jìn)制文件的讀寫:
save
np.save ("./文件名", 數(shù)組名):以二進(jìn)制的格式保存數(shù)據(jù)
load
np.load("./文件名.npy"): 函數(shù)是從二進(jìn)制的文件中讀取數(shù)據(jù)
savez
np.savez(’./文件名’,數(shù)組名1,數(shù)組名2,…):savez 函數(shù)可以將多個(gè)數(shù)組保存到一個(gè)文件中
(1)save操作
import numpy as np a=np.arange(5) np.save('get.npy',a)
(2)load操作
import numpy as np a=np.load('load.npy') print(a)
(3)savez操作
import numpy as np a=np.arange(3) b=np.arange(4) c=np.arange(5) np.savez('array_save.npz',a,b,c) 多個(gè)ndarray類型的數(shù)組
總結(jié)
到此這篇關(guān)于python讀取npy文件數(shù)據(jù)的文章就介紹到這了,更多相關(guān)python讀取npy文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言中的結(jié)構(gòu)體在Python中實(shí)現(xiàn)轉(zhuǎn)換
這篇文章主要為大家介紹了C語言中的結(jié)構(gòu)體在Python中實(shí)現(xiàn)轉(zhuǎn)換示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python實(shí)現(xiàn)全局變量的兩個(gè)解決方法
這篇文章主要介紹了Python實(shí)現(xiàn)全局變量的兩個(gè)解決方法,需要的朋友可以參考下2014-07-07使用Python實(shí)現(xiàn)簡單的服務(wù)器功能
socket的使用并不局限于Python語言,你可以用C或者Java來寫出同樣的socket服務(wù)器,而所有語言使用socket的方式都類似(Apache就是使用C實(shí)現(xiàn)的服務(wù)器)2017-08-08python發(fā)送多人郵件沒有展示收件人問題的解決方法
這篇文章主要為大家詳細(xì)介紹了python發(fā)送多人郵件沒有展示收件人問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06Python with語句上下文管理器兩種實(shí)現(xiàn)方法分析
這篇文章主要介紹了Python with語句上下文管理器兩種實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python上下文管理器的相關(guān)概念、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-02-02