Ejemplo n.º 1
0
def create_calibrated_rtl(window_size, config, lattice_rank=4):
    feature_columns = create_feature_columns(window_size)
    feature_names = [fc.name for fc in feature_columns]
    hparams = tfl.CalibratedRtlHParams(
        feature_names=feature_names,
        learning_rate=0.02,
        calibration_l2_laplacian_reg=1.0e-4,
        lattice_l2_laplacian_reg=1.0e-5,
        lattice_l2_torsion_reg=1.0e-5,
        optimizer=tf.train.AdamOptimizer,
        num_lattices=1024,
        interpolation_type="hypercube",
        lattice_size=4,
        lattice_rank=4,
        missing_input_value=missing_val
    )
    hparams.set_feature_param("chr", "num_keypoints", 23)
    hparams.set_feature_param("assay", "num_keypoints", 35)
    hparams.set_feature_param("line", "num_keypoints", 51)
    for offset in window(window_size):
        hparams.set_feature_param(f"base_{offset}", "num_keypoints", len(base_symbols))
    
    for i in range(1, num_cell_lines+1):
        hparams.set_feature_param(f"C{i}", "num_keypoints", cell_line_keypoints)
   
    for i in range(1, num_assays+1):
        hparams.set_feature_param(f"M{i}", "num_keypoints", assay_keypoints)

    return tfl.calibrated_rtl_regressor(
        feature_columns=feature_columns,
        model_dir=model_dir, config=config, hparams=hparams,
        quantiles_dir=os.path.join(quantiles_dir, str(window_size))
    )
Ejemplo n.º 2
0
def create_calibrated_rtl(feature_columns, config, quantiles_dir):
    feature_names = [fc.name for fc in feature_columns]
    hparams = tfl.CalibratedRtlHParams(feature_names=feature_names,
                                       num_keypoints=200,
                                       learning_rate=lr,
                                       lattice_l2_laplacian_reg=5.0e-4,
                                       lattice_l2_torsion_reg=1.0e-4,
                                       lattice_size=2,
                                       lattice_rank=4,
                                       num_lattices=10)
    return tfl.calibrated_rtl_classifier(feature_columns=feature_columns,
                                         model_dir=config.model_dir,
                                         config=config,
                                         hparams=hparams,
                                         quantiles_dir=quantiles_dir)
def create_calibrated_rtl(feature_columns, config, quantiles_dir):
    feature_names = [fc.name for fc in feature_columns]
    hparams = tfl.CalibratedRtlHParams(feature_names=feature_names,
                                       num_keypoints=200,
                                       learning_rate=0.02,
                                       lattice_l2_laplacian_reg=5.0e-4,
                                       lattice_l2_torsion_reg=1.0e-4,
                                       lattice_size=3,
                                       lattice_rank=4,
                                       num_lattices=100)
    #对部分列中的超参单独赋值.
    hparams.set_feature_param("capital_gain", "lattice_size", 8)
    hparams.set_feature_param("native_area", "lattice_size", 8)
    hparams.set_feature_param("marital_status", "lattice_size", 4)
    hparams.set_feature_param("age", "lattice_size", 8)
    #hparams.parse(hparams)
    _pprint_hparams(hparams)
    return tfl.calibrated_rtl_classifier(feature_columns=feature_columns,
                                         model_dir=config.model_dir,
                                         config=config,
                                         hparams=hparams,
                                         quantiles_dir=quantiles_dir)
Ejemplo n.º 4
0
"""A quick test script for TensorFlow Lattice's calibrated RTL estimator."""
import numpy as np

import tensorflow as tf
import tensorflow_lattice as tfl

# Feature definition.
feature_columns = [
    tf.feature_column.numeric_column('x0'),
    tf.feature_column.numeric_column('x1'),
]

# Hyperparameters.
num_keypoints = 10
hparams = tfl.CalibratedRtlHParams(num_keypoints=num_keypoints,
                                   num_lattices=5,
                                   lattice_rank=2,
                                   learning_rate=0.1)


def init_fn():
    return tfl.uniform_keypoints_for_signal(num_keypoints,
                                            input_min=-1.0,
                                            input_max=1.0,
                                            output_min=0.0,
                                            output_max=1.0)


# Estimator.
rtl_estimator = tfl.calibrated_rtl_regressor(feature_columns=feature_columns,
                                             hparams=hparams,
                                             keypoints_initializers_fn=init_fn)
Ejemplo n.º 5
0
def run_image(image_path, lattice_size=35):
    """Reads image and fits a 2D lattice to compress it."""
    im = plt.imread(image_path)[:, :, 2]
    im_pixels = _pixels(im)

    print('compression ratio is ', lattice_size**2 / float(im.size))

    # Hyperparameters.
    num_keypoints = 2
    hparams = tfl.CalibratedRtlHParams(num_keypoints=num_keypoints,
                                       num_lattices=1,
                                       lattice_rank=2,
                                       learning_rate=0.003,
                                       lattice_size=lattice_size)

    # Estimator.
    # input: coordinate of the pixel
    # output: value of the pixel
    feature_columns = [
        tf.feature_column.numeric_column('pixel_x'),
        tf.feature_column.numeric_column('pixel_y'),
    ]

    def keypoints_initializers():
        return tfl.uniform_keypoints_for_signal(num_keypoints,
                                                input_min=0.0,
                                                input_max=im_pixels.max(),
                                                output_min=0.0,
                                                output_max=lattice_size - 1)

    rtl_estimator = tfl.calibrated_rtl_regressor(
        feature_columns=feature_columns,
        hparams=hparams,
        keypoints_initializers_fn=keypoints_initializers)

    # Example input function.
    input_fn = tf.compat.v1.estimator.inputs.numpy_input_fn(x={
        'pixel_x':
        im_pixels[:, 0],
        'pixel_y':
        im_pixels[:, 1]
    },
                                                            y=im_pixels[:, 2],
                                                            batch_size=5000,
                                                            num_epochs=15,
                                                            shuffle=True)

    # Train!
    rtl_estimator.train(input_fn=input_fn)

    # Evaluate!
    eval_input_fn = tf.compat.v1.estimator.inputs.numpy_input_fn(
        x={
            'pixel_x': im_pixels[:, 0],
            'pixel_y': im_pixels[:, 1]
        },
        y=im_pixels[:, 2],
        batch_size=5000,
        num_epochs=1,
        shuffle=True)
    print(rtl_estimator.evaluate(input_fn=eval_input_fn))

    return rtl_estimator