# training data
 FLAGS = ng.Config('inpaint.yml')
 img_shapes = FLAGS.img_shapes
 with open(FLAGS.data_flist[FLAGS.dataset][0]) as f:
     fnames = f.read().splitlines()
 if FLAGS.guided:
     fnames = [(fname, fname[:-4] + '_edge.jpg') for fname in fnames]
     img_shapes = [img_shapes, img_shapes]
 data = ng.data.DataFromFNames(fnames,
                               img_shapes,
                               random_crop=FLAGS.random_crop,
                               nthreads=FLAGS.num_cpus_per_job)
 images = data.data_pipeline(FLAGS.batch_size)
 # main model
 model = InpaintCAModel()
 g_vars, d_vars, losses = model.build_graph_with_losses(FLAGS, images)
 # validation images
 if FLAGS.val:
     with open(FLAGS.data_flist[FLAGS.dataset][1]) as f:
         val_fnames = f.read().splitlines()
     if FLAGS.guided:
         val_fnames = [(fname, fname[:-4] + '_edge.jpg')
                       for fname in val_fnames]
     # progress monitor by visualizing static images
     for i in range(FLAGS.static_view_size):
         static_fnames = val_fnames[i:i + 1]
         static_images = ng.data.DataFromFNames(
             static_fnames,
             img_shapes,
             nthreads=1,
             random_crop=FLAGS.random_crop).data_pipeline(1)
     if count == 1:
         fnames = f.read().splitlines()
     elif count == 2:
         fnames = [(l.split(' ')[0], l.split(' ')[1]) for l in f.read().splitlines()]
     elif count == 3:
         fnames = [(l.split(' ')[0], l.split(' ')[1], l.split(' ')[2]) for l in f.read().splitlines()]
     else:
         print('invalid data count')
         exit()
         
 data = ng.data.DataFromFNames(
     fnames, config.IMG_SHAPES, random_crop=config.RANDOM_CROP, gamma=config.GAMMA, exposure=config.EXPOSURE, random_flip = config.RANDOM_FLIP)
 images = data.data_pipeline(config.BATCH_SIZE)
 # main model
 model = InpaintCAModel()
 g_vars, d_vars, losses = model.build_graph_with_losses(
     images[0], config=config, exclusionmask=images[exclusionmask_index] if config.EXC_MASKS else None, mask=None if config.GEN_MASKS else images[mask_index])
 # validation images
 if config.VAL:
     with open(config.DATA_FLIST[config.DATASET][1]) as f:
         val_fnames = [(l.split(' ')[0], l.split(' ')[1]) for l in f.read().splitlines()]
     # progress monitor by visualizing static images
     for i in range(config.STATIC_VIEW_SIZE):
         static_fnames = val_fnames[i:i+1]
         static_images = ng.data.DataFromFNames(
             static_fnames, config.IMG_SHAPES, nthreads=1,
             random_crop=config.RANDOM_CROP, random_flip=config.RANDOM_FLIP).data_pipeline(1)
         static_inpainted_images = model.build_static_infer_graph(
             static_images[0], config, name='static_view/%d' % i, exclusionmask=images[exclusionmask_index] if config.EXC_MASKS else None)
 # training settings
 lr = tf.get_variable(
     'lr', shape=[], trainable=False,
Exemple #3
0
    if config.GPU_ID != -1:
        ng.set_gpus(config.GPU_ID)
    else:
        ng.get_gpus(config.NUM_GPUS)

    # training data
    with open(config.DATA_FLIST[config.DATASET][0]) as f:
        fnames = f.read().splitlines()
    data = ng.data.DataFromFNames(fnames,
                                  config.IMG_SHAPES,
                                  random_crop=config.RANDOM_CROP)
    images = data.data_pipeline(config.BATCH_SIZE)

    # main model
    model = InpaintCAModel()
    g_vars, d_vars, losses = model.build_graph_with_losses(images,
                                                           config=config)

    # validation images
    if config.VAL:
        with open(config.DATA_FLIST[config.DATASET][1]) as f:
            val_fnames = f.read().splitlines()
        # progress monitor by visualizing static images
        for i in range(config.STATIC_VIEW_SIZE):
            static_fnames = val_fnames[i:i + 1]
            static_images = ng.data.DataFromFNames(
                static_fnames,
                config.IMG_SHAPES,
                nthreads=1,
                random_crop=config.RANDOM_CROP).data_pipeline(1)
            static_inpainted_images = model.build_static_infer_graph(
                static_images, config, name='static_view/%d' % i)
Exemple #4
0
if __name__ == "__main__":
    # training data
    FLAGS = ng.Config('inpaint.yml')
    img_shapes = FLAGS.img_shapes
    
    # Read flist input and mask image
    with open(FLAGS.data_flist[FLAGS.dataset][0]) as f:
        fnames_input = f.read().splitlines()
    train_fnames = [(fname, fname[:-4]+'mask.png') for fname in fnames_input]
    data = ng.data.DataFromFNames(
        train_fnames, img_shapes, random_crop=FLAGS.random_crop,
        nthreads=FLAGS.num_cpus_per_job)
    batch_data = data.data_pipeline(FLAGS.batch_size)
    # main model
    model = InpaintCAModel()
    g_vars, d_vars, losses = model.build_graph_with_losses(FLAGS, batch_data)
    # validation images
    with open(FLAGS.data_flist[FLAGS.dataset][1]) as f:
        val_fnames = f.read().splitlines()
    val_fnames = [(fname, fname[:-4] + 'mask.png') for fname in val_fnames]
    batch_val = ng.data.DataFromFNames(
            val_fnames, img_shapes, nthreads=FLAGS.num_cpus_per_job,
            random_crop = FLAGS.random_crop).data_pipeline(FLAGS.batch_size)
    batch_val_complete = model.build_infer_graph(FLAGS, batch_val)
    num_iters_val = len(val_fnames)//FLAGS.batch_size        
    # training settings
    lr = tf.get_variable(
        'lr', shape=[], trainable=False,
        initializer=tf.constant_initializer(1e-4))
    d_optimizer = tf.train.AdamOptimizer(lr, beta1=0.5, beta2=0.999)
    g_optimizer = d_optimizer