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)
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)
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)