コード例 #1
0
def evualate_model(model, data, test_paths, settings):
    """
    """

    # predict on testing data
    pred_mtx = temp_model.predict_generator(
        data_generator(data, test_paths, settings),
        steps=ceil(len(test_paths) / settings["BATCH_SIZE"]),
    )

    # write out images
    write_images(data, test_paths, pred_mtx, settings, iter_path)

    # return evualation data frame
    self.eval_metrics = self.eval_metrics.append(
        calculate_metrics(data, full_testing_paths, pred_mtx, self.settings,
                          self.curr_iter),
        ignore_index=True,
    )
コード例 #2
0
def main():
  data_generator()
  train()
コード例 #3
0
        total_flops, total_params = get_flops(FLOPS_PATH, MODEL)
        print(total_flops, total_params)
        exit()

    # define where to save the model
    model_name = f"{P_NAME}_{MODEL}_{BACKBONE}_{IN_HEIGHT}_{IN_WIDTH}_weights_{datetime.now().strftime('%d_%m_%y-%H_%M_%p')}"
    callbacks = get_callbacks(weights_path=WEIGHTS_OUT_PATH, model_name=model_name)


    # Load data using generator
    if generator:
        train_generator = data_generator(frames_path=FRAMES_TRAIN_PATH,
                                         masks_path=MASKS_TRAIN_PATH,
                                         fnames=os.listdir(FRAMES_TRAIN_PATH),
                                         n_classes=CLASSES,
                                         input_h=IN_HEIGHT,
                                         input_w=IN_WIDTH,
                                         batch_size=TRAIN_BATCH_SIZE,
                                         is_resizable=False,
                                         training=True)

        val_generator = data_generator(frames_path=FRAMES_VAL_PATH,
                                       masks_path=MASKS_VAL_PATH,
                                       fnames=os.listdir(FRAMES_VAL_PATH),
                                       n_classes=CLASSES,
                                       input_h=IN_HEIGHT,
                                       input_w=IN_WIDTH,
                                       batch_size=VAL_BATCH_SIZE,
                                       is_resizable=False,
                                       training=True)
コード例 #4
0
    test_masks = None

    if not os.path.isfile(UNET_MODEL_PATH):
        quit(f"Model file not found {UNET_MODEL_PATH}")
    if not os.path.isdir(FRAMES_TEST_IN_PATH) or not os.path.isdir(MASKS_TEST_IN_PATH):
        quit(f"Directory not found")

    # Create model
    model = UNet.build(pre_trained=True, model_path=UNET_MODEL_PATH, n_classes=3, input_h=320, input_w=320)

    # If images are loaded from generator
    if is_generator:
        test_data_generated = data_generator(frames_path=FRAMES_TEST_IN_PATH,
                                             masks_path=MASKS_TEST_IN_PATH,
                                             fnames=os.listdir(MASKS_TEST_IN_PATH),
                                             input_h=320,
                                             input_w=320,
                                             n_classes=3,
                                             batch_size=10,
                                             is_resizable=True)
        predicted_masks = model.predict_generator(test_data_generated, steps=15)

    # If images are loaded from builder(no generator)
    else:
        test_frames, test_masks = data_loader(frames_path=FRAMES_TEST_IN_PATH,
                                              masks_path=MASKS_TEST_IN_PATH,
                                              input_h=320,
                                              input_w=320,
                                              n_classes=3,
                                              fnames=os.listdir(MASKS_TEST_IN_PATH),
                                              is_resizable=True)
        # Predictive probs
コード例 #5
0
    if not os.path.isfile(WEIGHTS_IN_PATH):
        quit(f"Model file not found {WEIGHTS_IN_PATH}")
    if not os.path.isdir(FRAMES_TEST_IN_PATH) or not os.path.isdir(MASKS_TEST_IN_PATH):
        quit(f"Directory not found")

    # Load model from dispatcher and build
    network = MODELS[MODEL]
    model = network.build()
    #model.summary()

    # If images are loaded from generator
    if is_generator:
        test_data_generated = data_generator(frames_path=FRAMES_TEST_IN_PATH,
                                             masks_path=MASKS_TEST_IN_PATH,
                                             fnames=os.listdir(MASKS_TEST_IN_PATH),
                                             input_h=IN_HEIGHT,
                                             input_w=IN_WIDTH,
                                             n_classes=NO_CLASSES,
                                             batch_size=1,
                                             is_resizable=True)
        predicted_masks = model.predict_generator(test_data_generated, steps=6)

    # If images are loaded from builder(no generator)
    else:
        test_frames, test_masks = data_loader(frames_path=FRAMES_TEST_IN_PATH,
                                              masks_path=MASKS_TEST_IN_PATH,
                                              input_h=IN_HEIGHT,
                                              input_w=IN_WIDTH,
                                              n_classes=NO_CLASSES,
                                              fnames=os.listdir(MASKS_TEST_IN_PATH),
                                              is_resizable=False)
        # Predictive probs
コード例 #6
0
# Load Env. variables
FRAMES_TRAIN_PATH = os.environ.get("FRAMES_TRAIN_PATH")
MASKS_TRAIN_PATH = os.environ.get("MASKS_TRAIN_PATH")
FRAMES_VAL_PATH = os.environ.get("FRAMES_VAL_PATH")
MASKS_VAL_PATH = os.environ.get("MASKS_VAL_PATH")

#MODEL = os.environ.get("MODEL")
MODELS_OUT_PATH = os.environ.get("MODELS_OUT_PATH")

if __name__ == '__main__':
    # Image generator
    train_generator = data_generator(frames_path=FRAMES_TRAIN_PATH,
                                     masks_path=MASKS_TRAIN_PATH,
                                     fnames=os.listdir(FRAMES_TRAIN_PATH),
                                     n_classes=3,
                                     input_h=320,
                                     input_w=320,
                                     batch_size=25,
                                     is_resizable=True)

    val_generator = data_generator(frames_path=FRAMES_VAL_PATH,
                                   masks_path=MASKS_VAL_PATH,
                                   fnames=os.listdir(FRAMES_VAL_PATH),
                                   n_classes=3,
                                   input_h=320,
                                   input_w=320,
                                   batch_size=10,
                                   is_resizable=True)

    # Save model
    model_checkpoint_path = os.path.join(