def save_mat_for_lmdb(filename_prefix, header_all, data_all, suffix): batch_element_num = 200000000; data = data_all; header = header_all; if np.size(data_all) > batch_element_num: batch_N = batch_element_num / np.size(data_all,1) # batch/feat_dim data = data[0:batch_N,:] header[0] = batch_N sio.savemat(filename_prefix+str(suffix), {'header':header, 'data':data}) header = header_all header[0] = header_all[0] - batch_N data = data_all[batch_N:,:] save_mat_for_lmdb(filename_prefix, header, data, suffix+1); else: sio.savemat(filename_prefix+str(suffix), {'header':header, 'data':data})
# TODO: the header may have some problem! sometimes the last mat file has header'N as 0 # SAVE EXTRACTED FEATS def save_mat_for_lmdb(filename_prefix, header_all, data_all, suffix): batch_element_num = 200000000; data = data_all; header = header_all; if np.size(data_all) > batch_element_num: batch_N = batch_element_num / np.size(data_all,1) # batch/feat_dim data = data[0:batch_N,:] header[0] = batch_N sio.savemat(filename_prefix+str(suffix), {'header':header, 'data':data}) header = header_all header[0] = header_all[0] - batch_N data = data_all[batch_N:,:] save_mat_for_lmdb(filename_prefix, header, data, suffix+1); else: sio.savemat(filename_prefix+str(suffix), {'header':header, 'data':data}) print np.shape(all_feats.squeeze()) try: if args.save_file_format == 'txt': np.savetxt(args.save_file+'.txt', all_feats.squeeze(), fmt='%.8e', delimiter=' ') elif args.save_file_format == 'npy': np.save(args.save_file+'.npy', all_feats) elif args.save_file_format == 'mat': save_mat_for_lmdb(args.save_file, np.array([N,int(args.feat_dim),1,1]), all_feats.squeeze(), 1) #sio.savemat(args.save_file+'.mat', {'header':np.array([N, int(args.feat_dim), 1, 1]), 'data':all_feats}) except: save_mat_for_lmdb(args.save_file, np.array([N,int(args.feat_dim),1,1]), all_feats.squeeze(), 1) #save_mat_for_lmdb(args.save_file, np.array([N,int(args.feat_dim),1,1]), all_feats.squeeze(), 1)