def extract_features(net_, config): db = MemoryBlockManager(config.DB_PATH, False) if config.verbose: print 'extracting features of %s' % config.dataset t = time() num_samples = 10 * db.num_samples feats = np.zeros((num_samples, get_feature_dims(net_, config.feat_layer)), np.single) idx = 0 while not db.eof(): batch_data, _ = db.pop_batch(config.batchsize) # batchsize 128 transformed = do_multiview_crop(batch_data, config.crop_dim) transformed = transformed - config.mean_val num, chns, rows, cols = transformed.shape net_.blobs['data'].reshape(*(num, chns, rows, cols)) output = net_.forward(data=transformed.astype(np.float32, copy=False)) target = output[config.feat_layer] feats[idx:idx+num, ::] = reshape_feature(target) idx += num if config.verbose: print 'feature computation completed (%0.2f sec.)' % (time()-t) return feats
def extract_features(net_, config): db = MemoryBlockManager(config.DB_PATH, False) if config.verbose: print 'extracting features of %s' % config.dataset t = time() num_samples = 10 * db.num_samples feats = np.zeros((num_samples, get_feature_dims(net_, config.feat_layer)), np.single) idx = 0 while not db.eof(): batch_data, _ = db.pop_batch(config.batchsize) # batchsize 128 transformed = do_multiview_crop(batch_data, config.crop_dim) transformed = transformed - config.mean_val num, chns, rows, cols = transformed.shape net_.blobs['data'].reshape(*(num, chns, rows, cols)) output = net_.forward(data=transformed.astype(np.float32, copy=False)) target = output[config.feat_layer] feats[idx:idx + num, ::] = reshape_feature(target) idx += num if config.verbose: print 'feature computation completed (%0.2f sec.)' % (time() - t) return feats