def create_dataloader(imdb_name, args): imdb, roidb, ratio_list, ratio_index = combined_roidb(imdb_name) train_size = len(roidb) print('{:d} roidb entries'.format(len(roidb))) output_dir = args.save_dir + "/" + args.net + "/" + args.dataset if not os.path.exists(output_dir): os.makedirs(output_dir) sampler_batch = sampler(train_size, args.batch_size) dataset = roibatchLoader(roidb, ratio_list, ratio_index, args.batch_size, \ imdb.num_classes, training=True) dataloader = torch.utils.data.DataLoader(dataset, batch_size=args.batch_size, sampler=sampler_batch, num_workers=args.num_workers) return dataloader, train_size, imdb
vis = args.vis if vis: thresh = 0.05 else: thresh = 0.0 save_name = 'faster_rcnn_10' num_images = len(imdb.image_index) all_boxes = [[[] for _ in xrange(num_images)] for _ in xrange(imdb.num_classes)] output_dir = get_output_dir(imdb, save_name) dataset = roibatchLoader(roidb, ratio_list, ratio_index, 1, \ imdb.num_classes, training=False, normalize=False) dataloader = torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, num_workers=0, pin_memory=True) data_iter = iter(dataloader) _t = {'im_detect': time.time(), 'misc': time.time()} det_file = os.path.join(output_dir, 'detections.pkl') fasterRCNN.eval() empty_array = np.transpose(np.array([[], [], [], [], []]), (1, 0)) for i in range(num_images): data = next(data_iter) im_data.data.resize_(data[0].size()).copy_(data[0]) im_info.data.resize_(data[1].size()).copy_(data[1])
s_imdb, s_roidb, s_ratio_list, s_ratio_index = combined_roidb(args.s_imdb_name) s_train_size = len(s_roidb) # add flipped image_index*2 t_imdb, t_roidb, t_ratio_list, t_ratio_index = combined_roidb(args.t_imdb_name) t_train_size = len(t_roidb) # add flipped image_index*2 print('source {:d} target {:d} roidb entries'.format(len(s_roidb),len(t_roidb))) output_dir = args.save_dir + "/" + args.net + "/" + args.dataset if not os.path.exists(output_dir): os.makedirs(output_dir) s_sampler_batch = sampler(s_train_size, args.batch_size) t_sampler_batch=sampler(t_train_size,args.batch_size) s_dataset = roibatchLoader(s_roidb, s_ratio_list, s_ratio_index, args.batch_size, \ s_imdb.num_classes, training=True) s_dataloader = torch.utils.data.DataLoader(s_dataset, batch_size=args.batch_size, sampler=s_sampler_batch, num_workers=args.num_workers) t_dataset=roibatchLoader(t_roidb, t_ratio_list, t_ratio_index, args.batch_size, \ t_imdb.num_classes, training=False) t_dataloader = torch.utils.data.DataLoader(t_dataset, batch_size=args.batch_size, sampler=t_sampler_batch, num_workers=args.num_workers) # initilize the tensor holder here. im_data = torch.FloatTensor(1) im_info = torch.FloatTensor(1) num_boxes = torch.LongTensor(1)
# train set # -- Note: Use validation set and disable the flipped to enable faster loading. cfg.TRAIN.USE_FLIPPED = True cfg.USE_GPU_NMS = args.cuda imdb, roidb, ratio_list, ratio_index = combined_roidb(args.imdb_name) train_size = len(roidb) print('{:d} roidb entries'.format(len(roidb))) output_dir = args.save_dir + "/" + args.net + "/" + args.dataset if not os.path.exists(output_dir): os.makedirs(output_dir) sampler_batch = sampler(train_size, args.batch_size) dataset = roibatchLoader(roidb, ratio_list, ratio_index, args.batch_size, \ imdb.num_classes, training=True) dataloader = torch.utils.data.DataLoader(dataset, batch_size=args.batch_size, sampler=sampler_batch, num_workers=args.num_workers) # initilize the tensor holder here. im_data = torch.FloatTensor(1) im_info = torch.FloatTensor(1) num_boxes = torch.LongTensor(1) gt_boxes = torch.FloatTensor(1) # ship to cuda if args.cuda: im_data = im_data.cuda() im_info = im_info.cuda()
print("source {:d} target {:d} roidb entries".format( len(s_roidb), len(t_roidb))) # output_dir = args.save_dir + "/" + args.net + "/" + args.dataset output_dir = args.save_dir if not os.path.exists(output_dir): os.makedirs(output_dir) s_sampler_batch = sampler(s_train_size, args.batch_size) t_sampler_batch = sampler(t_train_size, args.batch_size) dataset_s = roibatchLoader( s_roidb, s_ratio_list, s_ratio_index, args.batch_size, s_imdb.num_classes, training=True, ) dataloader_s = torch.utils.data.DataLoader( dataset_s, batch_size=args.batch_size, sampler=s_sampler_batch, num_workers=args.num_workers, ) dataset_t = roibatchLoader( t_roidb, t_ratio_list, t_ratio_index, args.batch_size,