2016-06-15 61 views
0

我已經使用Caffe的教程從一組圖像中成功提取特徵。然後,我用這個代碼存儲在特徵文件中的結果轉換下性LevelDB格式NPY文件:閱讀Caffe矢量提取的特徵,在python中重塑矢量

input_path='../examples/images/' 
path='../examples/test/npy/' 
files = os.listdir(input_path) 

db = leveldb.LevelDB('../examples/_temp/features') 

for k in range(len(files)): 
     datum = caffe_pb2.Datum.FromString(db.Get(str(k))) 
     arr = caffe.io.datum_to_array(datum) 
     file=files[k] 
     out=np.save(path+file[0:len(file)-4],arr) 

然而,從每個圖像提取的結果是由向量ARR表示必須是4096-暗淡載體,其是不是我的情況如下所示

>>> arr 
array([[[ 0. ], 
     [ 0. ], 
     [ 0. ], 
     ..., 
     [ 0. ], 
     [ 0. ], 
     [ 0.199 ]]]) 
>>> arr.shape 
(1, 4096, 1) 

我不熟悉蟒蛇。我需要將這個數組保存爲npy文件中的4096-dim,以便將其存儲在csv文件中,作爲將由matlab讀取的一行。
如何將矢量arr轉換爲4096-dim?

預先感謝您的幫助

+0

請不要張貼屏幕截圖,而是剪切粘貼文本本身。搜索引擎無法爲屏幕截圖中的信息編制索引。 – Shai

+0

好的@Shai,對不起:) – sinimm

回答

0

如果我理解正確的話,你想的arrshape是4096暗淡,而不是(1, 4096, 1)
在這種情況下,你可能想使用flatten

arr.flatten() 

arr轉換成一維。

+1

是的,就是這樣。我將它存儲在csv文件中,並提供正確的輸出。非常感謝你 – sinimm