np.asarray([db.load_imgs(img) for img in imgs]), np.asarray([db.get_groundtruth(gt, 255.0) for gt in gts])) output_file = "output/out{}_{}_{}.png" head = ['VIDNAME', 'AGE', 'pEPs', 'pCEPs', 'MSSSIM', 'PSNR', 'CQM'] report = CSVLogging("report{}.csv".format(options.method), head) init_weight = model.get_model().get_weights() try: for id in range(db.max_video): print("VIDEO : {}, {}".format(id, db.videos[id]["input"][-15:])) model.get_model().set_weights(init_weight) model.get_model().fit_generator( generator=get_generator_batched_for_id(id, options.ratio), samples_per_epoch=min( int(db.get_count_on_video(id) * options.ratio), options.max_length), nb_epoch=max_epoch, callbacks=[]) if db.get_count_on_video(id) * ( 1.0 - options.ratio) > 0 and options.max_length > 0: max_test = db.get_count_on_video(id) - options.max_length outputs = model.get_model().predict_generator( get_generator_test_batched_for_id(id, options.ratio), 5) gt = db.get_groundtruth_from_id(id) gt = gt.reshape(list(gt.shape) + [1]) acc = [] for i, output in enumerate(outputs): cv2.imwrite( output_file.format(options.method, id, i), output.reshape([model.output_size, model.output_size]) *
ratio = 0.5 @GeneratorLoop def get_generator_test_batched_for_id(id): max_test = db.get_count_on_video(id) - options.max_length for batch in chunks(db.get_datas_on_one(id), options.batch_size): imgs, gts = zip(*batch) yield model.preprocess( np.asarray([db.load_imgs(img) for img in imgs]), np.asarray([db.get_groundtruth(gt, 255.0) for gt in gts])) if options.weight_file is None: model.get_model().fit_generator( generator=get_generator_batched_for_id(options.videoid), samples_per_epoch=int(db.get_count_on_video(options.videoid) * ratio), nb_epoch=max_epoch) outputs = model.get_model().predict_generator( get_generator_batched_for_id(options.videoid), int(db.get_count_on_video(options.videoid) * (1 - ratio))) gt = db.get_groundtruth_from_id(options.videoid) gt = gt.reshape(list(gt.shape) + [1]) acc = [] for i, output in enumerate(outputs): cv2.imwrite(output_file.format(options.method, i), output.reshape([model.output_size, model.output_size]) * 255.) acc += Evaluate(gt, output) print(acc)