joint = JointRegressor(ut.get_default_output(),
                           models=models,
                           outputs=dataset.get_num_classes(),
                           l1_reg=FLAGS.l1_regularization,
                           l2_reg=FLAGS.l2_regularization,
                           loss_fn=MeanSquared(),
                           clip_gradient=FLAGS.gradient_clip)

    # Define metrics
    metrics = [
        me.AbsError(),
        me.MeanPredError(),
        me.MedianPredError(),
        me.Mean(),
        me.Std(),
        me.AbsErrorInterval(cuts=[60, 120, 200, 400])
    ]

    if FLAGS.training:
        # Start training
        joint.train(dataset,
                    batch_size=FLAGS.batch_size,
                    track_models=FLAGS.checkpoints,
                    track_summaries=FLAGS.summaries,
                    steps=FLAGS.steps,
                    gpu_frac=FLAGS.gpu_frac,
                    metrics=metrics)
    else:
        # Evaluate test
        results = joint.evaluate(dataset,
                                 data_mode=DataMode.TEST,
    elif FLAGS.mode == TrainMode.WIDE_AND_DEEP:
        models = [linear_model, mlp_model]
    elif FLAGS.mode == TrainMode.CNN:
        models = [cnn_model]
    elif FLAGS.mode == TrainMode.ALL:
        models = [cnn_model, linear_model, mlp_model]

    # Define model, loss and metrics according to model type
    logger.info('Regression problem for column %s' % dataset.target_class())
    model_metrics = [
        metrics.AbsError(),
        metrics.MeanPredError(),
        metrics.MedianPredError(),
        metrics.Mean(),
        metrics.Std(),
        metrics.AbsErrorInterval(cuts=[50, 100, 150, 250])
    ]

    # Build model
    joint = JointRegressor(utils.get_default_output(),
                           models=models,
                           outputs=dataset.get_num_classes(),
                           l1_reg=FLAGS.l1_regularization,
                           l2_reg=FLAGS.l2_regularization,
                           loss_fn=MeanSquared(),
                           clip_gradient=FLAGS.gradient_clip)

    if FLAGS.training:

        if FLAGS.validate:
            # Train using validation
Example #3
0
        models = [linear_model]
    elif FLAGS.mode == TrainMode.DEEP:
        models = [mlp_model]
    elif FLAGS.mode == TrainMode.WIDE_AND_DEEP:
        models = [linear_model, mlp_model]
    else:
        raise ValueError('Unsupported option in Boston training %s'
                         % FLAGS.mode)

    model_metrics = [
        metrics.AbsError(),
        metrics.MeanPredError(),
        metrics.MedianPredError(),
        metrics.Mean(),
        metrics.Std(),
        metrics.AbsErrorInterval(cuts=[10, 15, 20]),
        metrics.RMSEInterval(cuts=[10, 15, 20])
    ]

    # Create model
    joint = JointMDN(mixture=GaussianMixture(components=FLAGS.K),
                     model_dir=utils.get_default_output(),
                     models=models,
                     outputs=dataset.get_num_classes(),
                     l1_reg=FLAGS.l1_regularization,
                     l2_reg=FLAGS.l2_regularization,
                     clip_gradient=FLAGS.gradient_clip)

    if FLAGS.training:
        # Start training
        joint.train(dataset,
Example #4
0
 def runTest(self):
     self.base_test(me.AbsErrorInterval(cuts=[3.0, 5.0, 7.0]),
                    [0.625, 0.5, np.nan, 1.375])