我已使用Caffe的教程从一组图片中成功提取功能。然后,我使用此代码将存储在leveldb格式的features文件中的结果转换为npy文件:
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-dim向量,这不是我的情况,如下所示
>>> arr
array([[[ 0. ],
[ 0. ],
[ 0. ],
...,
[ 0. ],
[ 0. ],
[ 0.199 ]]])
>>> arr.shape
(1, 4096, 1)
我不熟悉python。我需要在npy文件中将此数组保存为4096-dim,以便将其进一步存储在csv文件中,作为一行将由matlab读取。
如何将矢量arr
转换为4096-dim?
提前感谢您的帮助
答案 0 :(得分:0)