コード例 #1
0
 def __init__(self, queue, sketch_dir, image_dir, triplet_path, mean, hard_ratio, batch_size, phase):
     """Setup the TripletSamplingDataLayer."""
     super(TripletSamplingDataFetcher, self).__init__()
     #        mean = mean
     self._queue = queue
     self._phase = phase
     self.sketch_transformer = Transformer(225, 1, mean, self._phase == "TRAIN")
     self.sketch_dir = sketch_dir
     self.anc_bm = MemoryBlockManager(sketch_dir)
     self.pos_neg_bm = MemoryBlockManager(image_dir)
     self.hard_ratio = hard_ratio
     self.mini_batchsize = batch_size
     self.load_triplets(triplet_path)
コード例 #2
0
 def __init__(self, queue, layer_params):
     """Setup the TripletSamplingDataLayer."""
     super(TripletSamplingDataFetcher, self).__init__()
     self._queue = queue
     mean = layer_params['mean']
     self._phase = layer_params['phase']
     self.sketch_transformer = Transformer(225, 1, mean,
                                           self._phase == "TRAIN")
     self.anc_bm = MemoryBlockManager(layer_params['sketch_dir'])
     self.pos_neg_bm = MemoryBlockManager(layer_params['image_dir'])
     self.hard_ratio = layer_params['hard_ratio']
     self.mini_batchsize = layer_params['batch_size']
     self.load_triplets(layer_params['triplet_path'])
コード例 #3
0
ファイル: sampler_asy.py プロジェクト: y2242794082/SBIR
 def __init__(self, queue, sketch_dir,  mean, hard_ratio, batch_size):
     """Setup the StrokeSamplingDataLayer."""
     super(SamplingDataFetcher, self).__init__()
     #        mean = mean
     self._queue = queue
     self.sketch_transformer = Transformer(225, 1, mean)
     self.sketch_dir = sketch_dir
     self.sketch_bm = MemoryBlockManager(sketch_dir)
     self.hard_ratio = hard_ratio
     self.mini_batchsize = batch_size
コード例 #4
0
 def __init__(self, queue, sketch_data, image_data, sketch_label, image_label, triplets, queue_paras, phase):
     """Setup the TripletSamplingDataLayer."""
     super(TripletSamplingDataFetcher, self).__init__()
     #        mean = mean
     self.im_size = queue_paras['im_size']
     self.cp_size = queue_paras['cp_size']
     self.chns = queue_paras['chns']
     self.mean = queue_paras['mean']
     self.batchsize = queue_paras['batch_size']
     self.num_epoch = queue_paras['num_epochs']
     self._queue = queue
     self._phase = phase
     self.sketch_transformer = Transformer(self.cp_size, self.chns, self.mean, self._phase == "TRAIN")
     if sketch_label is None or image_label is None:
         self.has_label = False
     else:
         self.has_label = True
     self.anc_bm = MemoryBlockManager(sketch_data, sketch_label, self.has_label)
     self.pos_neg_bm = MemoryBlockManager(image_data, image_label, self.has_label)
     self.triplets = triplets
コード例 #5
0
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