def __init__(self, i_net): # Create network self.netname = i_net print('Train: cfg.FLAGS.network', net) if i_net == 'vgg16': self.net = vgg16(batch_size=cfg.FLAGS.ims_per_batch) self.pre_model = cfg.FLAGS.pretrained_model elif i_net == 'res50': self.net = resnetv1(num_layers=50) self.pre_model = cfg.FLAGS.pretrained_resnet50_model elif i_net == 'res101': self.net = resnetv1(num_layers=101) self.pre_model = cfg.FLAGS.pretrained_resnet101_model elif i_net == 'res152': self.net = resnetv1(num_layers=152) self.pre_model = cfg.FLAGS.pretrained_resnet152_model else: raise NotImplementedError print('self.net', self.net) self.imdb, self.roidb = combined_roidb("voc_2007_trainval") self.data_layer = RoIDataLayer(self.roidb, self.imdb.num_classes) self.output_dir = cfg.get_output_dir(self.imdb, 'default')
def setup(): global net, vocab ckpt_dir = 'output/ckpt/' vocabulary = 'output/ckpt/vocabulary.txt' # load network net = resnetv1(num_layers=50) # vgg16() resnetv1(num_layers=50, 101, 152) net.create_architecture("TEST", num_classes=1, tag='pre') ckpt = tf.train.get_checkpoint_state(ckpt_dir) # load vocab vocab = ['<PAD>', '<SOS>', '<EOS>'] with open(vocabulary, 'r') as f: for line in f: vocab.append(line.strip()) # set config tfconfig = tf.ConfigProto(allow_soft_placement=True) tfconfig.gpu_options.allow_growth = True # init session saver = tf.train.Saver() sess = tf.Session(config=tfconfig) saver.restore(sess, ckpt.model_checkpoint_path) print('Restored from {}'.format(ckpt.model_checkpoint_path)) return sess
def architecture_test(): blob = get_data_test() tf.reset_default_graph() net = resnetv1(50) # net._build_network() net.create_architecture(mode='TEST', tag='pre') for n in tf.get_default_graph().as_graph_def().node: print(n.name) tfconfig = tf.ConfigProto(allow_soft_placement=True) tfconfig.gpu_options.allow_growth = True feed_dict = { net._image: blob['data'], net._im_info: blob['im_info'], net._gt_boxes: blob['gt_boxes'], net._gt_phrases: blob['gt_phrases'] } output = net._for_debug output.update({ "image": net._image, "im_info": net._im_info, "gt_boxes": net._gt_boxes, "gt_phrases": net._gt_phrases }) with tf.Session(config=tfconfig) as sess: init = tf.global_variables_initializer() sess.run(init) out = sess.run('DenseCap_ResNet50/Prediction/lstm/cap_init_state:0', feed_dict=feed_dict) print(out.shape)
def __init__(self): # Create network if cfg.FLAGS.network == 'resnet_v1': self.net = resnetv1(batch_size=cfg.FLAGS.ims_per_batch, num_layers=50) else: raise NotImplementedError self.imdb, self.roidb = combined_roidb("voc_2007_trainval") self.data_layer = RoIDataLayer(self.roidb, self.imdb.num_classes) self.output_dir = cfg.get_output_dir(self.imdb, 'default')
def __init__(self): # Create network if cfg.FLAGS.net == 'vgg16': self.net = vgg16(batch_size=cfg.FLAGS.ims_per_batch) elif cfg.FLAGS.net == 'resnetv1': self.net = resnetv1(batch_size=cfg.FLAGS.ims_per_batch) else: raise NotImplementedError self.imdb, self.roidb = combined_roidb("Columbia") self.data_layer = RoIDataLayer(self.roidb, self.imdb.num_classes) self.output_dir = cfg.get_output_dir(self.imdb, 'default')
def __init__(self, dataset): # Create network if cfg.FLAGS.network == 'vgg16': self.net = vgg16(batch_size=cfg.FLAGS.ims_per_batch) elif cfg.FLAGS.network == 'RESNET_v1_50': self.net = resnetv1(batch_size=cfg.FLAGS.ims_per_batch) else: raise NotImplementedError #The database #self.imdb, self.roidb = combined_roidb("voc_2007_trainval+test+Isabel") self.imdb, self.roidb = combined_roidb(dataset) #self.imdb, self.roidb = combined_roidb("Isabel") print(self.imdb.name) self.data_layer = RoIDataLayer(self.roidb, self.imdb.num_classes) self.output_dir = cfg.get_output_dir(self.imdb, 'default') print(self.output_dir)
print(tfmodel) raise IOError(('{:s} not found.\nDid you download the proper networks from ' 'our server and place them properly?').format(tfmodel + '.meta') """ # set config tfconfig = tf.ConfigProto(allow_soft_placement=True) tfconfig.gpu_options.allow_growth = True # init session sess = tf.Session(config=tfconfig) # load network if demonet == 'vgg16': net = vgg16(batch_size=1) elif demonet == 'res101': net = resnetv1(batch_size=1, num_layers=101) else: raise NotImplementedError net.create_architecture(sess, "TEST", 21, tag='default', anchor_scales=[8, 16, 32]) saver = tf.train.Saver() # read from the pre-store ckpt file saver.restore(sess, tfmodel) print('Loaded network {:s}'.format(tfmodel)) im_names = [
# tensorboard directory where the summaries are saved during training tb_dir = get_output_tb_dir(imdb, args.tag) print('TensorFlow summaries will be saved to `{:s}`'.format(tb_dir)) # also add the validation set, but with no flipping images orgflip = cfg.TRAIN.USE_FLIPPED cfg.TRAIN.USE_FLIPPED = False _, valroidb = combined_roidb(args.imdbval_name) print('{:d} validation roidb entries'.format(len(valroidb))) cfg.TRAIN.USE_FLIPPED = orgflip # load network if args.net == 'vgg16': net = vgg16(batch_size=cfg.TRAIN.IMS_PER_BATCH) elif args.net == 'res50': net = resnetv1(batch_size=cfg.TRAIN.IMS_PER_BATCH, num_layers=50) elif args.net == 'res101': net = resnetv1(batch_size=cfg.TRAIN.IMS_PER_BATCH, num_layers=101) elif args.net == 'res152': net = resnetv1(batch_size=cfg.TRAIN.IMS_PER_BATCH, num_layers=152) else: raise NotImplementedError train_net(net, imdb, roidb, valroidb, output_dir, tb_dir, pretrained_model=args.weight, max_iters=args.max_iters)
if not os.path.isfile(tfmodel + '.meta'): raise IOError( ('{:s} not found.\nDid you download the proper networks from ' 'our server and place them properly?').format(tfmodel + '.meta')) # set config tfconfig = tf.ConfigProto(allow_soft_placement=True) tfconfig.gpu_options.allow_growth = True # init session sess = tf.Session(config=tfconfig) # load network if demonet == 'vgg16': net = vgg16() elif demonet == 'res101': net = resnetv1(num_layers=101) else: raise NotImplementedError net.create_architecture("TEST", 21, tag='default', anchor_scales=[8, 16, 32]) saver = tf.train.Saver() saver.restore(sess, tfmodel) print('Loaded network {:s}'.format(tfmodel)) im_names = [ '000456.jpg', '000542.jpg', '001150.jpg', '001763.jpg', '004545.jpg', 'dog_cat00.jpg', 'dog_cat02.jpg', 'dog_cat03.jpg' ]
if __name__ == '__main__': args = parse_args() print('------- called with args: --------') pprint.pprint(args) if args.cfg_file is not None: cfg_from_file(args.cfg_file) if args.set_cfgs is not None: cfg_from_list(args.set_cfgs) # load network if args.net == 'vgg16': net = vgg16() elif args.net == 'res50': net = resnetv1(num_layers=50) elif args.net == 'res101': net = resnetv1(num_layers=101) elif args.net == 'res152': net = resnetv1(num_layers=152) else: raise NotImplementedError net.create_architecture("TEST", num_classes=1, tag='pre') vocab = ['<PAD>', '<SOS>', '<EOS>'] with open(args.vocabulary, 'r') as f: for line in f: vocab.append(line.strip()) # get the image paths im_paths = glob.glob('./data/demo/*.jpg')
def get_model(): args = parse_args() # model path demonet = args.demo_net dataset = args.dataset tfmodel = os.path.join('default', 'Columbia', 'default', NETS[demonet][0]) if not os.path.isfile(tfmodel + '.meta'): print(tfmodel) raise IOError( ('{:s} not found.\nDid you download the proper networks from ' 'our server and place them properly?').format(tfmodel + '.meta')) # set config tfconfig = tf.ConfigProto(allow_soft_placement=True) tfconfig.gpu_options.allow_growth = True # init session sess = tf.Session(config=tfconfig) # load network if demonet == 'vgg16': net = vgg16(batch_size=1) elif demonet == 'res50': net = resnetv1(batch_size=1, num_layers=50) else: raise NotImplementedError #net.create_architecture(sess, "TEST", 2, tag='default', anchor_scales=[8, 16, 32]) srm2 = tf.get_variable('vgg_16/srm2/weights', [5, 5, 3, 3], trainable=False) srm3 = tf.get_variable('vgg_16/srm3/weights', [5, 5, 3, 3], trainable=False) #srm2 = tf.get_variable('resnet_v1_50/srm/weights', [5, 5, 3, 3], trainable=False) saver = tf.train.Saver() saver.restore(sess, tfmodel) #variables = tf.global_variables() #for i in variables: # print(i) filters = sess.run(srm2) print(filters.shape) plt.imsave( 'filt0.jpg', cv2.resize(filters[:, :, :, 0], (800, 800), interpolation=cv2.INTER_NEAREST)) plt.imsave( 'filt1.jpg', cv2.resize(filters[:, :, :, 1], (800, 800), interpolation=cv2.INTER_NEAREST)) plt.imsave( 'filt2.jpg', cv2.resize(filters[:, :, :, 2], (800, 800), interpolation=cv2.INTER_NEAREST)) filters2 = sess.run(srm3) print(filters2.shape) plt.imsave( 'filt3.jpg', cv2.resize(filters2[:, :, :, 0], (800, 800), interpolation=cv2.INTER_NEAREST)) plt.imsave( 'filt4.jpg', cv2.resize(filters2[:, :, :, 1], (800, 800), interpolation=cv2.INTER_NEAREST)) plt.imsave( 'filt5.jpg', cv2.resize(filters2[:, :, :, 2], (800, 800), interpolation=cv2.INTER_NEAREST))
def main(): args = parse_args() cfg.DATA_DIR = args.data_dir cfg.CONTEXT_FUSION = args.context_fusion # c_time = time.strftime('%m%d_%H%M', time.localtime()) # if not os.path.exists(cfg.LOG_DIR): # os.makedirs(cfg.LOG_DIR) # file_handler = logging.FileHandler(pjoin(cfg.LOG_DIR, # args.network_name + '_%s.txt' % c_time)) # logging.getLogger().addHandler(file_handler) print('------ called with args: -------') pprint.pprint(args) if args.cfg_file is not None: cfg_from_file(args.cfg_file) if args.set_cfgs is not None: cfg_from_list(args.set_cfgs) if cfg.INIT_BY_GLOVE and cfg.KEEP_AS_GLOVE_DIM: cfg.EMBED_DIM = cfg.GLOVE_DIM else: cfg.EMBED_DIM = args.embed_dim print("Using config:") pprint.pprint(cfg) if not args.randomize: # fix the random seeds (numpy and caffe) for reproducibility np.random.seed(cfg.RNG_SEED) tf.set_random_seed(cfg.RNG_SEED) imdb, roidb = GetRoidb(args.imdb_name) output_dir = get_output_dir(imdb, args.tag) print("output will be saved to `{:s}`".format(output_dir)) # tensorboard directory where the summaries are saved during training tb_dir = get_output_tb_dir(imdb, args.tag) print('TensorFlow summaries will be saved to `{:s}`'.format(tb_dir)) # also add validation set, but with no flipping image orgflip = cfg.TRAIN.USE_FLIPPED cfg.TRAIN.USE_FLIPPED = False _, valroidb = GetRoidb(args.imdbval_name) cfg.TRAIN.USE_FLIPPED = orgflip # load network if args.net == 'vgg16': net = vgg16() elif args.net == 'res50': net = resnetv1(num_layers=50) elif args.net == 'res101': net = resnetv1(num_layers=101) elif args.net == 'res152': net = resnetv1(num_layers=152) else: raise NotImplementedError if args.weights and not args.weights.endswith('.ckpt'): try: ckpt = tf.train.get_checkpoint_state(args.weights) pretrained_model = ckpt.model_checkpoint_path except: raise ValueError("NO checkpoint found in {}".format(args.weights)) else: pretrained_model = args.weights # TODO: "imdb" may not be useful during training train_net(net, imdb, roidb, valroidb, output_dir, tb_dir, pretrained_model=pretrained_model, max_iters=args.max_iters)
def main(): args = parse_args() # c_time = time.strftime('%m%d_%H%M', time.localtime()) # if not os.path.exists(cfg.LOG_DIR): # os.makedirs(cfg.LOG_DIR) # file_handler = logging.FileHandler(pjoin(cfg.LOG_DIR, # args.network_name + '_%s.txt' % c_time)) # logging.getLogger().addHandler(file_handler) print('------ called with args: -------') pprint.pprint(args) if args.cfg_file is not None: cfg_from_file(args.cfg_file) if args.set_cfgs is not None: cfg_from_list(args.set_cfgs) print("runing with LIMIT_RAM: {}".format(cfg.LIMIT_RAM)) print("Using config:") pprint.pprint(cfg) if not args.randomize: # fix the random seeds (numpy and caffe) for reproducibility np.random.seed(cfg.RNG_SEED) tf.set_random_seed(cfg.RNG_SEED) if not cfg.LIMIT_RAM: imdb, roidb = combined_roidb(args.imdb_name) else: imdb, roidb = get_roidb_limit_ram(args.imdb_name) output_dir = get_output_dir(imdb, args.tag) print("output will be saved to `{:s}`".format(output_dir)) # tensorboard directory where the summaries are saved during training tb_dir = get_output_tb_dir(imdb, args.tag) print('TensorFlow summaries will be saved to `{:s}`'.format(tb_dir)) # also add validation set, but with no flipping image orgflip = cfg.TRAIN.USE_FLIPPED cfg.TRAIN.USE_FLIPPED = False if not cfg.LIMIT_RAM: _, valroidb = combined_roidb(args.imdbval_name) else: _, valroidb = get_roidb_limit_ram(args.imdbval_name) cfg.TRAIN.USE_FLIPPED = orgflip # load network if args.net == 'vgg16': net = vgg16() elif args.net == 'res50': net = resnetv1(num_layers=50) elif args.net == 'res101': net = resnetv1(num_layers=101) elif args.net == 'res152': net = resnetv1(num_layers=152) else: raise NotImplementedError # TODO: "imdb" may not be useful during training train_net(net, imdb, roidb, valroidb, output_dir, tb_dir, pretrained_model=args.pretrained_model, max_iters=args.max_iters)