예제 #1
0
def test_model_q(model_name='q', region="50S69W"):
    """
    Test the humidity model
    """
    global model
    # Load testing data
    train_data_in, train_data_out, test_data_in, test_data_out = data_io.scm_model_data(region)
    q_norm_test = test_data_in["qtot_test"]
    qadv_norm_test = test_data_in["qadv_test"]
    qadv_dot_norm_test = test_data_in["qadv_dot_test"]
    qphys_norm_test = test_data_out["qphys_test"]
    qadd_test = test_data_in["qadd_test"]
    qadd_dot_test = test_data_in["qadd_dot_test"]
    qcomb_test  = np.concatenate((qadv_norm_test,q_norm_test),axis=1)
    qcomb_dot_test  = np.concatenate((qadd_dot_test,q_norm_test),axis=1)
    # qcomb_dot_test  = np.concatenate((qadv_dot_norm_test,q_norm_test),axis=1)
    

    checkpoint_dir = '{0}/{1}'.format(locations['chkpnt_loc'], model_name)    
    latest = tf.train.latest_checkpoint(checkpoint_dir)
    # After compiling model, run through some data for initialising variables then load weights
    model.compile(optimizer=optimizer,loss=loss_object,metrics=[test_accuracy])
    # model(qadv_test[:1])
    # model(q_test[:1])
    # model(qcomb_test[:1])
    model(qcomb_dot_test[:1])
    model.load_weights(latest)
    print(model_name)
    print(model.summary())
    
    qphys_normaliser = joblib.load('{0}/minmax_qphystot.joblib'.format(locations['normaliser_loc']))
    q_normaliser = joblib.load('{0}/minmax_qtot.joblib'.format(locations['normaliser_loc']))
    qadv_normaliser = joblib.load('{0}/minmax_qadvtot.joblib'.format(locations['normaliser_loc']))
    qadv_dot_normaliser = joblib.load('{0}/minmax_qadv_dot.joblib'.format(locations['normaliser_loc']))
    # qphys_predict = model.predict(qadv_test)
    # qphys_predict = model.predict(q_test)
    # qphys_predict = model.predict(qcomb_test)
    qadv_predict = model.predict(qcomb_dot_test)
    
    # qphys_predict_denorm = qphys_normaliser.inverse_transform(qphys_predict)
    # qphys_test_denorm = qphys_normaliser.inverse_transform(qphys_test)
    qadv_predict_denorm = qadv_normaliser.inverse_transform(qadv_predict)
    qadv_test_denorm = qadv_normaliser.inverse_transform(qadv_norm_test)
    # np.savez('qtot_predict',qphys_predict=qphys_predict_denorm,qphys_test=qphys_test_denorm)
    np.savez('qcomb_dot_predict_qadv',qadv_predict=qadv_predict_denorm,qadv_test=qadv_test_denorm)
예제 #2
0
locations = {
    "train_test_datadir": "/project/spice/radiation/ML/CRM/data/models/datain",
    "chkpnt_loc": "/project/spice/radiation/ML/CRM/data/models/chkpts",
    "pkl_loc": "/project/spice/radiation/ML/CRM/data/models/history",
    "normaliser_loc": "/project/spice/radiation/ML/CRM/data/models/normaliser"
}

if __name__ == "__main__":
    BATCH = 100
    EPOCHS = 50
    # model_name = "qcomb_add_dot_qphys_deep"
    model_name = "tcomb_add_dot_qphys_deep"
    region = "50S69W"

    train_data_in, train_data_out, test_data_in, test_data_out = data_io.scm_model_data(
        region)
    t_norm_train = train_data_in["T"]
    tadv_norm_train = train_data_in["tadv"]
    tadv_dot_norm_train = train_data_in["tadv_dot"]
    tphys_norm_train = train_data_out["tphys_tot"]

    t_norm_test = test_data_in["T_test"]
    tadv_norm_test = test_data_in["tadv_test"]
    tadv_dot_norm_test = test_data_in["tadv_dot_test"]
    tphys_norm_test = test_data_out["tphys_test"]
    tadd_train = train_data_in["tadd"]
    tadd_dot_train = train_data_in["tadd_dot"]
    tadd_test = test_data_in["tadd_test"]
    tadd_dot_test = test_data_in["tadd_dot_test"]
    tcomb_train = np.concatenate((tadv_norm_train, t_norm_train), axis=1)
    tcomb_test = np.concatenate((tadv_norm_test, t_norm_test), axis=1)
예제 #3
0
loss_object = tf.keras.losses.MeanSquaredError()
optimizer = tf.keras.optimizers.Adam()
#optimizer = tf.keras.optimizers.SGD(lr=0.1)
# tf.print(optimizer.learning_rate, output_stream=sys.stdout)
train_loss = tf.keras.metrics.MeanSquaredError(name='train_loss')
train_accuracy = tf.keras.metrics.CategoricalAccuracy(name='train_accuracy')

test_loss = tf.keras.metrics.MeanSquaredError(name='test_loss')
test_accuracy = tf.keras.metrics.CategoricalAccuracy(name='test_accuracy')

locations = {
    "train_test_datadir": "/project/spice/radiation/ML/CRM/data/models/datain",
    "chkpnt_loc": "/project/spice/radiation/ML/CRM/data/models/chkpts",
    "pkl_loc": "/project/spice/radiation/ML/CRM/data/models/history"
}

if __name__ == "__main__":
    BATCH = 100
    EPOCHS = 50
    model_name = "scm"
    region = "50S69W"
    model_data_in_train, model_data_out_train, model_data_in_test, model_data_out_test = data_io.scm_model_data(
        region)
    train_data = []
    test_data = []
    create_train_scm_model(BATCH,
                           EPOCHS,
                           train_data,
                           test_data,
                           model_name=model_name,
                           region=region)