2016-06-15 60 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